mirror of
https://github.com/Kakune55/ComiPy.git
synced 2025-09-16 04:09:41 +08:00
60 lines
1.6 KiB
Python
60 lines
1.6 KiB
Python
import logging
|
||
import sys
|
||
from logging.handlers import RotatingFileHandler
|
||
import os
|
||
|
||
def setup_logging(app=None, log_level=logging.INFO):
|
||
"""
|
||
设置应用程序的日志记录
|
||
"""
|
||
# 创建logs目录
|
||
if not os.path.exists('logs'):
|
||
os.makedirs('logs')
|
||
|
||
# 设置日志格式
|
||
formatter = logging.Formatter(
|
||
'%(asctime)s - %(name)s - %(levelname)s - %(message)s'
|
||
)
|
||
|
||
# 文件处理器 - 应用日志
|
||
file_handler = RotatingFileHandler(
|
||
'logs/app.log',
|
||
maxBytes=10*1024*1024, # 10MB
|
||
backupCount=5
|
||
)
|
||
file_handler.setFormatter(formatter)
|
||
file_handler.setLevel(log_level)
|
||
|
||
# 错误日志处理器
|
||
error_handler = RotatingFileHandler(
|
||
'logs/error.log',
|
||
maxBytes=10*1024*1024, # 10MB
|
||
backupCount=5
|
||
)
|
||
error_handler.setFormatter(formatter)
|
||
error_handler.setLevel(logging.ERROR)
|
||
|
||
# 控制台处理器
|
||
console_handler = logging.StreamHandler(sys.stdout)
|
||
console_handler.setFormatter(formatter)
|
||
console_handler.setLevel(log_level)
|
||
|
||
# 配置根日志记录器
|
||
root_logger = logging.getLogger()
|
||
root_logger.setLevel(log_level)
|
||
root_logger.addHandler(file_handler)
|
||
root_logger.addHandler(error_handler)
|
||
root_logger.addHandler(console_handler)
|
||
|
||
# 如果是Flask应用,也配置Flask的日志
|
||
if app:
|
||
app.logger.addHandler(file_handler)
|
||
app.logger.addHandler(error_handler)
|
||
app.logger.setLevel(log_level)
|
||
|
||
return logging.getLogger(__name__)
|
||
|
||
def get_logger(name):
|
||
"""获取指定名称的日志记录器"""
|
||
return logging.getLogger(name)
|