Add alternative logging module
This commit is contained in:
parent
d8a18854cb
commit
bfe065583a
5
amanuensis/log/__init__.py
Normal file
5
amanuensis/log/__init__.py
Normal 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
42
amanuensis/log/setup.py
Normal 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)
|
Loading…
Reference in New Issue
Block a user