Add alternative logging module

This commit is contained in:
Tim Van Baak 2020-04-23 10:17:40 -07:00
parent d8a18854cb
commit bfe065583a
2 changed files with 47 additions and 0 deletions

View File

@ -0,0 +1,5 @@
from amanuensis.log.setup import init_logging
__all__ = [member.__name__ for member in [
init_logging
]]

42
amanuensis/log/setup.py Normal file
View File

@ -0,0 +1,42 @@
import logging
import logging.handlers
basic_formatter = logging.Formatter(
fmt='[{levelname}] {message}',
style='{')
detailed_formatter = logging.Formatter(
fmt='[{asctime}] [{levelname}:{filename}:{lineno}] {message}',
style='{')
basic_console_handler = logging.StreamHandler()
basic_console_handler.setLevel(logging.INFO)
basic_console_handler.setFormatter(basic_formatter)
detailed_console_handler = logging.StreamHandler()
detailed_console_handler.setLevel(logging.DEBUG)
detailed_console_handler.setFormatter(detailed_formatter)
def get_file_handler(filename: str) -> logging.Handler:
handler = logging.handlers.RotatingFileHandler(
filename=filename,
maxBytes=1000000,
backupCount=10,
delay=True,
encoding='utf8',
)
handler.setLevel(logging.DEBUG)
handler.setFormatter(detailed_formatter)
return handler
def init_logging(verbose: bool, log_filename: str):
"""
Initializes the Amanuensis logger settings
"""
logger = logging.getLogger("amanuensis")
if log_filename:
logger.addHandler(get_file_handler(log_filename))
elif verbose:
logger.addHandler(detailed_console_handler)
else:
logger.addHandler(basic_console_handler)