WARP-Clash-API/utils/logger.py
vvbbnn00 1e6349a545 Uniform Code Formatting
Unify variables and constants to use the snake_case naming convention, and use camelCase for method names.
2024-01-28 23:47:47 +08:00

38 lines
1.0 KiB
Python

import logging
import os
from logging.handlers import TimedRotatingFileHandler
def createLogger(filename, level=logging.INFO):
"""
Create logger with TimedRotatingFileHandler
:param filename: filename
:param level: logging level
:return: logger
"""
# Create logs directory
if not os.path.exists("logs"):
os.makedirs("logs")
# Create logger
logger = logging.getLogger(filename)
logger.setLevel(level)
# Create TimedRotatingFileHandler to rotate log file
log_filename = os.path.join("logs", filename + ".log")
file_handler = TimedRotatingFileHandler(log_filename, when="midnight", interval=1, backupCount=7)
# Create formatter
formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
file_handler.setFormatter(formatter)
# Create StreamHandler to output to console
stream_handler = logging.StreamHandler()
stream_handler.setFormatter(formatter)
# Add handlers
logger.addHandler(file_handler)
logger.addHandler(stream_handler)
return logger