61 lines
1.8 KiB
Python
61 lines
1.8 KiB
Python
import logging
|
|
import os
|
|
from datetime import datetime
|
|
|
|
class LoggerConfig:
|
|
"""
|
|
日志配置类,用于初始化和配置logging
|
|
"""
|
|
|
|
@staticmethod
|
|
def setup_logger(log_level=logging.INFO):
|
|
"""
|
|
设置日志记录器
|
|
|
|
Args:
|
|
log_level: 日志级别,默认为INFO
|
|
|
|
Returns:
|
|
logger: 配置好的logger对象
|
|
"""
|
|
# 创建log目录
|
|
log_dir = 'log'
|
|
if not os.path.exists(log_dir):
|
|
os.makedirs(log_dir)
|
|
|
|
# 生成日志文件名,使用当前日期
|
|
current_date = datetime.now().strftime('%Y-%m-%d')
|
|
log_file = os.path.join(log_dir, f'autologon_{current_date}.log')
|
|
|
|
# 创建logger
|
|
logger = logging.getLogger('autoLogon')
|
|
logger.setLevel(log_level)
|
|
|
|
# 清除已有的handler
|
|
if logger.handlers:
|
|
for handler in logger.handlers:
|
|
logger.removeHandler(handler)
|
|
|
|
# 创建文件handler
|
|
file_handler = logging.FileHandler(log_file, encoding='utf-8')
|
|
file_handler.setLevel(log_level)
|
|
|
|
# 创建控制台handler
|
|
console_handler = logging.StreamHandler()
|
|
console_handler.setLevel(log_level)
|
|
|
|
# 定义日志格式
|
|
formatter = logging.Formatter(
|
|
'%(asctime)s - %(name)s - %(levelname)s - %(filename)s:%(lineno)d - %(message)s'
|
|
)
|
|
file_handler.setFormatter(formatter)
|
|
console_handler.setFormatter(formatter)
|
|
|
|
# 添加handler到logger
|
|
logger.addHandler(file_handler)
|
|
logger.addHandler(console_handler)
|
|
|
|
return logger
|
|
|
|
# 创建全局logger实例
|
|
global_logger = LoggerConfig.setup_logger() |