正确配置python logger的文件路径和名称

时间:2017-11-04 14:47:48

标签: python

我有以下.yaml文件,用于定义我想要使用的记录器的配置。

version: 1
disable_existing_loggers: False

formatters:
    simple:
        format: "%(asctime)s - %(module)12s - %(name)12s - %(levelname)s - %(message)s"

handlers:
    console:
        class: logging.StreamHandler
        level: DEBUG
        formatter: debug_format
        stream: ext://sys.stdout

    info_file_handler:
        class: logging.handlers.TimedRotatingFileHandler
        level: INFO
        formatter: simple
        interval: 1
        backupCount: 20
        encoding: utf8
        when: midnight
        filename: Log/info.log

    error_file_handler:
        class: logging.handlers.RotatingFileHandler
        level: ERROR
        formatter: error_format
        maxBytes: 10485760 # 10MB
        backupCount: 20
        encoding: utf8
        filename: Log/errors.log

loggers:
    dedalus_logger:
        level: DEBUG
        handlers: [console]
        propagate: false

root:
    level: INFO
    handlers: [console, info_file_handler, error_file_handler]

问题在于我的RotatingFileHandlerTimedRotatingFileHandler会将文件命名为info.log2info.log.2017.10.19

如何我可以这样做,所以名称不会像这样自动设置,而是有一个更有意义的表单,如info.2.loginfo.2017.10.19.log

最后如果我像这样运行我的应用,我将filename定义为Log/info.log

>>cd Module/src
>>python run.py

它将在Module/src/Log内创建我期望它们的日志文件。如果相反,我会像这样运行

>> python Module/src/run.py

它会尝试在我当前的目录中创建日志文件,这不是我想要的,如何正确配置记录器来修复这两个问题?

0 个答案:

没有答案