Python 带有 dictConfig 的 TimedRotatingFileHandler
Python TimedRotatingFileHandler with dictConfig
我正在尝试使用 dictConfig
实现 TimedRotatingFileHandler
代码如下:
LOG_SETTINGS = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'default': {
'format': '%(asctime)s: %(name)s: #%(lineno)d: %(levelname)s - %(message)s'
}
},
'handlers': {
'file': {
'level': 'DEBUG',
'class': 'logging.handlers.TimedRotatingFileHandler',
'formatter': 'default',
'filename': logfile_name,
'when': 'midnight',
'interval': 1,
'backupCount': 5
}
},
'loggers': {
' ': {
'handlers': ['file'],
'level': 'DEBUG',
'propagate': True
},
}
}
logfile_name = $HOME/.local/share/app/file.log
Loading dictionary with logging.config.dictConfig(LOG_SETTINGS)
Writing to file: logging.debug("Some text")
这将创建一个名为 file.log
的文件,但该文件完全是空的。我没有 errors/warnings.
我去过。文件看起来很相似。
我哪里做错了?使用 Python 3.6
试试看:
import logging # there we import logging module
logger = logging.getLogger(' ') # there we get logger by name from settings
logger.debug('yolo') # there we test logging with custom message
更新:
在我的公司,我们总是使用它:
logger = logging.getLogger(__name__)
定义记录器:
'loggers': {
'app.views': {
'handlers': ['handler_name'],
'level': os.getenv('ERROR', 'INFO'), # needed level
'propagate': True,
},
我正在尝试使用 dictConfig
TimedRotatingFileHandler
代码如下:
LOG_SETTINGS = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'default': {
'format': '%(asctime)s: %(name)s: #%(lineno)d: %(levelname)s - %(message)s'
}
},
'handlers': {
'file': {
'level': 'DEBUG',
'class': 'logging.handlers.TimedRotatingFileHandler',
'formatter': 'default',
'filename': logfile_name,
'when': 'midnight',
'interval': 1,
'backupCount': 5
}
},
'loggers': {
' ': {
'handlers': ['file'],
'level': 'DEBUG',
'propagate': True
},
}
}
logfile_name =
$HOME/.local/share/app/file.log
Loading dictionary with
logging.config.dictConfig(LOG_SETTINGS)
Writing to file:
logging.debug("Some text")
这将创建一个名为 file.log
的文件,但该文件完全是空的。我没有 errors/warnings.
我去过
我哪里做错了?使用 Python 3.6
试试看:
import logging # there we import logging module
logger = logging.getLogger(' ') # there we get logger by name from settings
logger.debug('yolo') # there we test logging with custom message
更新: 在我的公司,我们总是使用它:
logger = logging.getLogger(__name__)
定义记录器:
'loggers': {
'app.views': {
'handlers': ['handler_name'],
'level': os.getenv('ERROR', 'INFO'), # needed level
'propagate': True,
},