first commit
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
import logging
|
||||
import os
|
||||
from logging.handlers import RotatingFileHandler
|
||||
|
||||
|
||||
def mylog(log_file="zabbix.log", max_bytes=10 * 1024 * 1024, backup_count=5):
|
||||
"""
|
||||
配置日志记录器,输出到/home/zabbix目录且不显示在控制台
|
||||
|
||||
参数:
|
||||
log_file: 日志文件名 (默认: zabbix.log)
|
||||
max_bytes: 单个日志文件最大字节 (默认: 10MB)
|
||||
backup_count: 保留的备份文件数 (默认: 5)
|
||||
"""
|
||||
# 创建日志目录
|
||||
log_dir = "./"
|
||||
os.makedirs(log_dir, exist_ok=True) # 自动创建目录[1,4](@ref)
|
||||
|
||||
# 完整的日志文件路径
|
||||
log_path = os.path.join(log_dir, log_file)
|
||||
|
||||
# 创建记录器
|
||||
logger = logging.getLogger("ZabbixLogger")
|
||||
logger.setLevel(logging.DEBUG) # 设置最低日志级别
|
||||
|
||||
# 配置日志格式
|
||||
formatter = logging.Formatter(
|
||||
"%(asctime)s - %(filename)s:%(lineno)d - %(levelname)s - %(message)s",
|
||||
datefmt="%Y-%m-%d %H:%M:%S",
|
||||
)
|
||||
|
||||
# 创建文件处理器(带日志轮转功能)[1,3](@ref)
|
||||
file_handler = RotatingFileHandler(
|
||||
log_path, maxBytes=max_bytes, backupCount=backup_count, encoding="utf-8"
|
||||
)
|
||||
file_handler.setFormatter(formatter)
|
||||
file_handler.setLevel(logging.INFO) # 文件日志级别
|
||||
|
||||
# 移除所有现有处理器(避免重复)
|
||||
if logger.hasHandlers():
|
||||
logger.handlers.clear()
|
||||
|
||||
# 添加文件处理器(不添加StreamHandler避免控制台输出)[6,8](@ref)
|
||||
logger.addHandler(file_handler)
|
||||
|
||||
# 禁用向父logger传播(避免root logger输出到控制台)[9](@ref)
|
||||
logger.propagate = False
|
||||
|
||||
return logger
|
||||
|
||||
|
||||
# 使用示例
|
||||
Reference in New Issue
Block a user