我创建了一个简单的烧瓶应用程序,但无法正确配置日志记录。
def configure_logger(log_path, name='default'):
logging.config.dictConfig({
'version': 1,
'formatters': {
'default': {'format': '%(asctime)s - %(levelname)s - %(message)s', 'datefmt': '%Y-%m-%d %H:%M:%S'}
},
'handlers': {
'console': {
'level': 'INFO',
'class': 'logging.StreamHandler',
'formatter': 'default',
'stream': 'ext://sys.stdout'
},
'file': {
'level': 'INFO',
'class': 'logging.handlers.TimedRotatingFileHandler',
'formatter': 'default',
'when': 'midnight',
'filename': log_path,
'backupCount': 5
}
},
'loggers': {
'default': {
'level': 'INFO',
'handlers': ['console', 'file']
}
},
'disable_existing_loggers': False
})
return logging.getLogger(name)
和
logger = configure_logger(log_path='./logs/')
app.logger.addHandler(logger)
但是(烧瓶)记录器没有使用提供的配置, 并在登录子模块时
├── api.py
├── logs
├── my_pkg
│ ├── __init__.py
│ └── second.py
└── settings
├── __init__.py
└── settings.py
我只记录错误,并且我的日志记录配置不再适用于子模块中的记录器:
import logging
logger = logging.getLogger('root')
https://github.com/geoHeil/flask_logging_question在示例项目中展示了这一点
答案 0 :(得分:0)
https://fangpenlin.com/posts/2012/08/26/good-logging-practice-in-python/概述的启用' disable_existing_loggers':False`将有助于解决问题。