2

我正在尝试TimedRotatingFileHandler实施dictConfig

这是代码:

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

日志文件名 =$HOME/.local/share/app/file.log

加载字典 logging.config.dictConfig(LOG_SETTINGS)

写入文件:logging.debug("Some text")

这将创建一个名为 的文件file.log,但该文件完全为空。我没有收到任何错误/警告。

在 Python 中访问了 Basic logging dictConfig。文件看起来很相似。

我哪里做错了?使用 Python 3.6

4

1 回答 1

0

试试看:

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,
    },
于 2017-09-03T09:49:23.303 回答