version: 1 disable_existing_loggers: false formatters: default: format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s" datefmt: "%Y-%m-%d %H:%M:%S" access: format: '%(asctime)s - %(client_addr)s - "%(request_line)s" %(status_code)s' handlers: console: class: logging.StreamHandler level: INFO formatter: default stream: ext://sys.stdout file: class: logging.handlers.RotatingFileHandler level: INFO formatter: default filename: app/logs/app.log maxBytes: 10485760 # 10G backupCount: 5 encoding: utf8 error_file: class: logging.handlers.RotatingFileHandler level: ERROR formatter: default filename: app/logs/error.log maxBytes: 10485760 # 10MB backupCount: 5 encoding: utf8 loggers: uvicorn: level: INFO handlers: [console, file] propagate: no uvicorn.error: level: INFO handlers: [error_file] propagate: no uvicorn.access: level: INFO handlers: [console] propagate: no sqlalchemy: level: WARNING handlers: [console, file] propagate: no root: level: INFO handlers: [console, file, error_file]