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,
    },