Я пытаюсь настроить ведение журнала для моего приложения, используя файл yaml и logging.config.dictConfig
, это на самом деле не работает, я не думаю, что конфигурация принимается logging
.
вот мой файл yaml:
version: 1
logging:
disable_existing_loggers: true
formatters:
multi-process:
class: logging.Formatter
style:
datefmt: "%I:%M:%S"
format: "{levelname:8s}; {process:5d}; {asctime:s}; {name:<15s} {lineno:4d}; {message:s}"
multi-thread:
class: logging.Formatter
style:
datefmt: "%I:%M:%S"
format: "{levelname:8s}; {threadName:5d}; {asctime:s}; {name:<15s} {lineno:4d}; {message:s}"
verbose:
class: logging.Formatter
style:
datefmt: "%I:%M:%S"
format: "{levelname:8s}; {process:5d}; {threadName:8s}; {asctime:s}; {name:<15s} {lineno:4d}; {message:s}"
handlers:
console:
level: DEBUG
class: logging.StreamHandler
formatter: verbose
stream: ext://sys.stdout
file_handler:
level: INFO
class: logging.handlers.WatchedFileHandler
formatter: verbose
filename: backtest.log
mode: a
encoding: utf-8
loggers:
example:
level: DEBUG
handlers:
- console
root:
handlers:
- console
level: DEBUG
вот как я его загружаю:
with open('logging.yaml', 'r') as stream:
yamld = yaml.load(stream)
logging.config.dictConfig(yamld)
logger = logging.getLogger("example")
logger.debug('debug message')
logger.info('info message')
logger.warn('warn message')
logger.error('error message')
logger.critical('critical message')
это мой вывод на консоль:
warn message
error message
critical message
как будто мои конфигурации вообще не загружаются