Add alternative logging module
This commit is contained in:
parent
d8a18854cb
commit
bfe065583a
|
@ -0,0 +1,5 @@
|
||||||
|
from amanuensis.log.setup import init_logging
|
||||||
|
|
||||||
|
__all__ = [member.__name__ for member in [
|
||||||
|
init_logging
|
||||||
|
]]
|
|
@ -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)
|
Loading…
Reference in New Issue