0x02 Python logging模块利用配置加载logger

系统 1461 0

目录

  • logging模块利用配置加载logger
    • 方式一模板:logging.config.dictConfig(config_dict)

logging模块利用配置加载logger

logging.config模块提供了从配置加载创建logger等相关对象,并放入manager对象中进行缓存待用。所以记录下一般几种方式配置的范本模式,方便项目中copy直接修改使用。

dict config references 官档关于logging配置字典说明

方式一模板:logging.config.dictConfig(config_dict)

config_dict 字典模板

          
                cfg = {
        'version': 1,
        'formatters': {
            'detailed': {
                'class': 'logging.Formatter',
                'format': '%(asctime)s %(name)-15s %(levelname)-8s %(processName)-10s %(message)s'
            }
        },
        'handlers': {
            'console': {
                'class': 'logging.StreamHandler',
                'level': 'INFO',
            },
            'file': {
                'class': 'logging.FileHandler',
                'filename': 'mplog.log',
                'mode': 'w',
                'formatter': 'detailed',
            },
            'foofile': {
                'class': 'logging.FileHandler',
                'filename': 'mplog-foo.log',
                'mode': 'w',
                'formatter': 'detailed',
            },
            'errors': {
                'class': 'logging.FileHandler',
                'filename': 'mplog-errors.log',
                'mode': 'w',
                'level': 'ERROR',
                'formatter': 'detailed',
            },
        },
        'loggers': {
            'foo': {
                'handlers': ['foofile']
            }
        },
        'root': {
            'level': 'DEBUG',
            'handlers': ['console', 'file', 'errors']
        },
    }

          
        

模板二:

          
            LOGGER_CONFIG_DICT = {
        'version': 1,
        'formatters': {
            'detailed_fmt': {
                'class': 'logging.Formatter',
                'format': '%(asctime)s %(created)s %(levelname)-6s %(name)-15s %(processName)s:%(threadName)s %(message)s'
                #  human-readable  timestamp levelname logger_name  processname threadname  message
            },
            'simple_fmt': {
                'class': 'logging.Formatter',
                'format': '%(asctime)s %(levelname)-8s %(name)-15s %(message)s'
                #  human-readable  levelname logger_name message
            },
            'portal_fmt': {
                'class': 'logging.Formatter',
                # 'datefmt': '%Y-%m-%d %H:%M:%S,uuu',  # 实际默认格式就是这个
                'format': '%(asctime)s %(levelname)-8s %(name)-15s  %(processName)-10s %(message)s'
            },
            'system_fmt': {
                'class': 'logging.Formatter',
                'format': '%(asctime)s %(name)-15s %(levelname)-8s %(processName)-10s %(message)s'
            },
        },
        'handlers': {
            # 'console_hd': {
            #     'class': 'logging.StreamHandler',
            #     'level': 'INFO'
            # },
            'time_rotate_file_hd': {
                'class': 'logging.handlers.TimedRotatingFileHandler',
                'filename': './logs/selfservices1.log',
                'when': 'M',
                'interval': 5,
                'backupCount': 100,
                'formatter': 'simple_fmt'
            },
            'file_size_rotate_hd': {
                'class': 'logging.handlers.RotatingFileHandler',
                'filename': './logs/portal.log',
                'mode': 'a',
                'maxBytes': 1024 * 1024 * 5,
                'backupCount': 50,
                'formatter': 'portal_fmt'
            },
            'errors_hd': {
                'class': 'logging.FileHandler',
                'filename': './logs/errors.log',
                'formatter': 'detailed_fmt',
                'level': 'ERROR'  # 只会错误40及以上的日志
            },
            'system_hd': {
                'class': 'logging.FileHandler',
                'filename': './logs/system.log',
                'formatter': 'simple_fmt'
            }
        },
        'loggers': {
            'selfservices': {
                'level': 'INFO',
                'handlers': ['file_size_rotate_hd', 'errors_hd']
                # 'handlers': ['time_rotate_file_hd', 'file_size_rotate_hd', 'errors_hd']
            }
        },
        'root': {
            'level': 'DEBUG',
            'handlers': ['system_hd', 'errors_hd']
        },
    }
          
        

更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论