Created
October 26, 2017 03:59
-
-
Save wassname/6dd8309c1fbd80b1a8281bbc85fcfe2f to your computer and use it in GitHub Desktop.
pythonic log of gdal errors
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import gdal | |
import logging | |
# example GDAL error handler function | |
gdal_logger = logging.getLogger('gdal') | |
if not gdal_logger.handlers: | |
gdal_logger.addHandler(logging.NullHandler) | |
errtype = { | |
gdal.CE_None: gdal_logger.info, | |
gdal.CE_Debug: gdal_logger.debug, | |
gdal.CE_Warning: gdal_logger.warn, | |
gdal.CE_Failure: gdal_logger.error, | |
gdal.CE_Fatal: gdal_logger.fatal | |
} | |
def gdal_error_handler(err_class, err_num, err_msg): | |
"""Log gdal errors.""" | |
err_msg = err_msg.replace('\n', ' ') | |
log_f = errtype.get(err_class, gdal_logger.info) | |
err_class = log_f.__name__ | |
full_msg = 'GdalError num=%r, type=%r, msg=%r' % (err_num, err_class, | |
err_msg) | |
log_f(full_msg) | |
#Exceptions will get raised on anything >= gdal.CE_Failure | |
gdal.UseExceptions() | |
# install error handler | |
gdal.PopErrorHandler() | |
gdal.PushErrorHandler(gdal_error_handler) | |
# test | |
if __name__ == '__main__': | |
gdal.Error(gdal.CE_Debug, 2, 'test CE_Debug') | |
gdal.Error(gdal.CE_Warning, 2, 'test CE_Warning') | |
gdal.Error(gdal.CE_Failure, 2, 'test CE_Failure') | |
# gdal.Error(gdal.CE_Fatal, 2, 'test CE_Fatal') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment