version: 1 disable_existing_loggers: false formatters: standard: format: "%(asctime)s | %(levelname)s | %(name)s | %(filename)s:%(lineno)d | %(message)s" datefmt: "%Y-%m-%d %H:%M:%S" access: format: '%(asctime)s | %(levelname)s | %(client_addr)s - "%(request_line)s" %(status_code)s' datefmt: "%Y-%m-%d %H:%M:%S" handlers: console: class: logging.StreamHandler level: INFO formatter: standard stream: ext://sys.stdout app_file: class: logging.handlers.TimedRotatingFileHandler level: INFO formatter: standard filename: app/logs/app.log when: D interval: 1 backupCount: 7 encoding: utf-8 access_file: class: logging.handlers.TimedRotatingFileHandler level: INFO formatter: access filename: app/logs/access.log when: D interval: 1 backupCount: 7 encoding: utf-8 loggers: uvicorn: level: INFO handlers: [console, app_file] propagate: false uvicorn.error: level: INFO handlers: [console, app_file] propagate: false uvicorn.access: level: INFO handlers: [console, access_file] propagate: false root: level: INFO handlers: [console, app_file]