带有dictConfig的Python TimedRotatingFileHandler

时间:2017-09-03 08:46:46

标签: python python-3.x logging

我正在尝试使用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
        },
    }
}
  

logfile_name = $HOME/.local/share/app/file.log

     

使用logging.config.dictConfig(LOG_SETTINGS)

加载字典      

写入档案:logging.debug("Some text")

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

我访问了Basic logging dictConfig in Python。文件似乎非常相似。

我哪里出错了?使用Python 3.6

1 个答案:

答案 0 :(得分: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__)

使用define logger:

'loggers': {
    'app.views': {
        'handlers': ['handler_name'],
        'level': os.getenv('ERROR', 'INFO'), # needed level
        'propagate': True,
    },