def log_to_seq(server_url, api_key=None, level=logging.WARNING,
batch_size=10, auto_flush_timeout=None,
additional_handlers=None, override_root_logger=False,
**kwargs):
"""
Configure the logging system to send log entries to Seq.
Note that the root logger will not log to Seq by default.
:param server_url: The Seq server URL.
:param api_key: The Seq API key (optional).
:param level: The minimum level at which to log.
:param batch_size: The number of log entries to collect before publishing to Seq.
:param auto_flush_timeout: If specified, the time (in seconds) before
the current batch is automatically flushed.
:param additional_handlers: Additional `LogHandler`s (if any).
:param override_root_logger: Override the root logger, too?
Note - this might cause problems if third-party components try to be clever
when using the logging.XXX functions.
:return: The `SeqLogHandler` that sends events to Seq. Can be used to forcibly flush records to Seq.
:rtype: SeqLogHandler
"""
logging.setLoggerClass(StructuredLogger)
if override_root_logger:
_override_root_logger()
log_handlers = [
SeqLogHandler(server_url, api_key, batch_size, auto_flush_timeout)
]
if additional_handlers:
for additional_handler in additional_handlers:
log_handlers.append(additional_handler)
logging.basicConfig(
style='{',
handlers=log_handlers,
level=level,
**kwargs
)
return log_handlers[0]
评论列表
文章目录