Logging settings¶
LoggingSettings
¶
Python logging configuration.
See logging.config docs.
Logging to stdout with colored text:
config.yml
Logging to logging:
# development usage only
version: 1
disable_existing_loggers: false
filters:
# Add request ID as extra field named `correlation_id` to each log record.
# This is used in combination with settings.server.request_id.enabled=True
# See https://github.com/snok/asgi-correlation-id#configure-logging
correlation_id:
(): asgi_correlation_id.CorrelationIdFilter
uuid_length: 32
default_value: '-'
formatters:
colored:
(): coloredlogs.ColoredFormatter
# Add correlation_id to log records
fmt: '%(asctime)s.%(msecs)03d %(processName)s:%(process)d %(name)s:%(lineno)d [%(levelname)s] %(message)s %(correlation_id)s'
datefmt: '%Y-%m-%d %H:%M:%S'
handlers:
main:
class: logging.StreamHandler
formatter: colored
filters: [correlation_id]
stream: ext://sys.stdout
loggers:
'':
handlers: [main]
level: INFO
propagate: false
uvicorn:
handlers: [main]
level: INFO
propagate: false
stdout without colored text:
config.yml
Logging to logging:
# development usage only
version: 1
disable_existing_loggers: false
filters:
# Add request ID as extra field named `correlation_id` to each log record.
# This is used in combination with settings.server.request_id.enabled=True
# See https://github.com/snok/asgi-correlation-id#configure-logging
correlation_id:
(): asgi_correlation_id.CorrelationIdFilter
uuid_length: 32
default_value: '-'
formatters:
plain:
(): logging.Formatter
# Add correlation_id to log records
fmt: '%(asctime)s.%(msecs)03d %(processName)s:%(process)d %(name)s:%(lineno)d [%(levelname)s] %(correlation_id)s %(message)s'
datefmt: '%Y-%m-%d %H:%M:%S'
handlers:
main:
class: logging.StreamHandler
formatter: plain
filters: [correlation_id]
stream: ext://sys.stdout
loggers:
'':
handlers: [main]
level: INFO
propagate: false
uvicorn:
handlers: [main]
level: INFO
propagate: false
stdout in JSON format:
config.yml
logging:
version: 1
disable_existing_loggers: false
filters:
# Add request ID as extra field named `correlation_id` to each log record.
# This is used in combination with settings.server.request_id.enabled=True
# See https://github.com/snok/asgi-correlation-id#configure-logging
correlation_id:
(): asgi_correlation_id.CorrelationIdFilter
uuid_length: 32
default_value: '-'
formatters:
json:
(): pythonjsonlogger.jsonlogger.JsonFormatter
# Add correlation_id to log records
fmt: '%(processName)s %(process)d %(threadName)s %(thread)d %(name)s %(lineno)d %(levelname)s %(message)s %(correlation_id)s'
timestamp: true
handlers:
main:
class: logging.StreamHandler
formatter: json
filters: [correlation_id]
stream: ext://sys.stdout
loggers:
'':
handlers: [main]
level: INFO
propagate: false
uvicorn:
handlers: [main]
level: INFO
propagate: false
Parameters:
-
(version¶Literal[1], default:1) –Configuration schema version
-
(formatters¶dict[str, FormatterConfig | CallableFactoryConfig], default:<class 'dict'>) –Logging formatters
-
(filters¶dict[str, FilterConfig | CallableFactoryConfig], default:<class 'dict'>) –Logging filters
-
(handlers¶dict[str, StreamHandlerConfig | FileHandlerConfig | WatchedFileHandlerConfig | RotatingFileHandlerConfig | TimedRotatingFileHandlerConfig | SocketHandlerConfig | DatagramHandlerConfig | SysLogHandlerConfig | NTEventLogHandlerConfig | SMTPHandlerConfig | MemoryHandlerConfig | HTTPHandlerConfig | QueueHandlerConfig | QueueListenerConfig | BaseHandlerConfig | CallableFactoryConfig], default:<class 'dict'>) –Logging handlers
-
(loggers¶dict[str, LoggerConfig], default:<class 'dict'>) –Logger configurations
-
(root¶RootLoggerConfig | None, default:None) –Root logger configuration
-
(incremental¶bool, default:False) –Whether configuration is incremental
-
(disable_existing_loggers¶bool, default:True) –Disable existing loggers