Patrick Kelley 8fd444092b initial
2025-05-07 15:35:15 -04:00

43 lines
1.2 KiB
Python

"""Logging configuration for zeek-client."""
import logging
LOG = logging.getLogger(__name__)
LOG.addHandler(logging.NullHandler())
def configure(verbosity=0, rich_logging=False, stream=None):
"""Configures logging.
Args:
verbosity (int): the log level. Values 0-3 increase logging, larger
values make no difference.
rich_logging (bool): whether to use timestamped, log-style log formatting.
"""
# Make log levels lower-case, looks better in informal logging
for level in (logging.ERROR, logging.WARNING, logging.INFO, logging.DEBUG):
logging.addLevelName(level, logging.getLevelName(level).lower())
if rich_logging:
formatter = logging.Formatter(
"%(asctime)s %(levelname)-8s %(message)s",
"%Y-%m-%d %H:%M:%S",
)
else:
formatter = logging.Formatter("%(levelname)s: %(message)s")
handler = logging.StreamHandler(stream=stream)
handler.setFormatter(formatter)
LOG.setLevel(logging.ERROR)
if verbosity == 1:
LOG.setLevel(logging.WARNING)
elif verbosity == 2:
LOG.setLevel(logging.INFO)
elif verbosity >= 3:
LOG.setLevel(logging.DEBUG)
LOG.addHandler(handler)