e_book_reading / log.py
HoneyTian's picture
update
f25c867
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import logging
from logging.handlers import TimedRotatingFileHandler
import os
def setup(log_directory: str):
fmt = "%(asctime)s - %(name)s - %(levelname)s %(filename)s:%(lineno)d > %(message)s"
stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.INFO)
stream_handler.setFormatter(logging.Formatter(fmt))
# main
main_logger = logging.getLogger("main")
main_logger.addHandler(stream_handler)
main_info_file_handler = TimedRotatingFileHandler(
filename=os.path.join(log_directory, "main.log"),
encoding="utf-8",
when="midnight",
interval=1,
backupCount=30
)
main_info_file_handler.setLevel(logging.INFO)
main_info_file_handler.setFormatter(logging.Formatter(fmt))
main_logger.addHandler(main_info_file_handler)
# http
http_logger = logging.getLogger("http")
http_file_handler = TimedRotatingFileHandler(
filename=os.path.join(log_directory, "http.log"),
encoding='utf-8',
when="midnight",
interval=1,
backupCount=30
)
http_file_handler.setLevel(logging.DEBUG)
http_file_handler.setFormatter(logging.Formatter(fmt))
http_logger.addHandler(http_file_handler)
# api
api_logger = logging.getLogger("api")
api_file_handler = TimedRotatingFileHandler(
filename=os.path.join(log_directory, "api.log"),
encoding='utf-8',
when="midnight",
interval=1,
backupCount=30
)
api_file_handler.setLevel(logging.DEBUG)
api_file_handler.setFormatter(logging.Formatter(fmt))
api_logger.addHandler(api_file_handler)
# alarm
alarm_logger = logging.getLogger("alarm")
alarm_file_handler = TimedRotatingFileHandler(
filename=os.path.join(log_directory, "alarm.log"),
encoding="utf-8",
when="midnight",
interval=1,
backupCount=30
)
alarm_file_handler.setLevel(logging.DEBUG)
alarm_file_handler.setFormatter(logging.Formatter(fmt))
alarm_logger.addHandler(alarm_file_handler)
debug_file_handler = TimedRotatingFileHandler(
filename=os.path.join(log_directory, "debug.log"),
encoding="utf-8",
when="D",
interval=1,
backupCount=7
)
debug_file_handler.setLevel(logging.DEBUG)
debug_file_handler.setFormatter(logging.Formatter(fmt))
info_file_handler = TimedRotatingFileHandler(
filename=os.path.join(log_directory, "info.log"),
encoding="utf-8",
when="D",
interval=1,
backupCount=7
)
info_file_handler.setLevel(logging.INFO)
info_file_handler.setFormatter(logging.Formatter(fmt))
error_file_handler = TimedRotatingFileHandler(
filename=os.path.join(log_directory, "error.log"),
encoding="utf-8",
when="D",
interval=1,
backupCount=7
)
error_file_handler.setLevel(logging.ERROR)
error_file_handler.setFormatter(logging.Formatter(fmt))
logging.basicConfig(
level=logging.DEBUG,
datefmt="%a, %d %b %Y %H:%M:%S",
handlers=[
debug_file_handler,
info_file_handler,
error_file_handler,
]
)
if __name__ == "__main__":
pass