我有以下.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]
问题在于我的RotatingFileHandler
和TimedRotatingFileHandler
会将文件命名为info.log2
和info.log.2017.10.19
,
如何我可以这样做,所以名称不会像这样自动设置,而是有一个更有意义的表单,如info.2.log
和info.2017.10.19.log
。
最后如果我像这样运行我的应用,我将filename
定义为Log/info.log
>>cd Module/src
>>python run.py
它将在Module/src/Log
内创建我期望它们的日志文件。如果相反,我会像这样运行
>> python Module/src/run.py
它会尝试在我当前的目录中创建日志文件,这不是我想要的,如何正确配置记录器来修复这两个问题?