119 lines
3.8 KiB
Python
119 lines
3.8 KiB
Python
import os
|
||
import socket
|
||
|
||
# 获取主机名,方便区分容器
|
||
HOSTNAME = socket.gethostname()
|
||
# 检测日志文件的路径是否存在,不存在则创建
|
||
LOG_PATHS = [
|
||
f"log/{HOSTNAME}/ucloud",
|
||
f"log/{HOSTNAME}/error",
|
||
f"log/{HOSTNAME}/qr",
|
||
f"log/{HOSTNAME}/sql",
|
||
]
|
||
for path in LOG_PATHS:
|
||
if not os.path.exists(path):
|
||
os.makedirs(path)
|
||
|
||
# 配置字典
|
||
LOGGING_CONFIG = {
|
||
'version': 1, # 必需,指定配置格式的版本
|
||
'disable_existing_loggers': False, # 是否禁用已经存在的logger实例
|
||
|
||
# formatters定义了不同格式的日志样式
|
||
'formatters': {
|
||
'standard': {
|
||
'format': '%(asctime)s [%(levelname)s] %(name)s: %(message)s',
|
||
'datefmt': '%Y-%m-%d %H:%M:%S',
|
||
},
|
||
},
|
||
|
||
# handlers定义了不同类型的日志处理器
|
||
'handlers': {
|
||
'console': {
|
||
'class': 'logging.StreamHandler', # 控制台处理器
|
||
'level': 'DEBUG',
|
||
'formatter': 'standard',
|
||
'stream': 'ext://sys.stdout', # 输出到标准输出,默认编码跟随系统,一般为UTF-8
|
||
},
|
||
'file': {
|
||
'class': 'logging.handlers.TimedRotatingFileHandler', # 文件处理器,支持日志滚动
|
||
'level': 'INFO',
|
||
'formatter': 'standard',
|
||
'filename': f'log/{HOSTNAME}/fcb_photo_review.log', # 日志文件路径
|
||
'when': 'midnight',
|
||
'interval': 1,
|
||
'backupCount': 14, # 保留的备份文件数量
|
||
'encoding': 'utf-8', # 显式指定文件编码为UTF-8以支持中文
|
||
},
|
||
'ucloud': {
|
||
'class': 'logging.handlers.TimedRotatingFileHandler',
|
||
'level': 'INFO',
|
||
'formatter': 'standard',
|
||
'filename': f'log/{HOSTNAME}/ucloud/fcb_photo_review_ucloud.log',
|
||
'when': 'midnight',
|
||
'interval': 1,
|
||
'backupCount': 14,
|
||
'encoding': 'utf-8',
|
||
},
|
||
'error': {
|
||
'class': 'logging.handlers.TimedRotatingFileHandler',
|
||
'level': 'INFO',
|
||
'formatter': 'standard',
|
||
'filename': f'log/{HOSTNAME}/error/fcb_photo_review_error.log',
|
||
'when': 'midnight',
|
||
'interval': 1,
|
||
'backupCount': 14,
|
||
'encoding': 'utf-8',
|
||
},
|
||
'qr': {
|
||
'class': 'logging.handlers.TimedRotatingFileHandler',
|
||
'level': 'INFO',
|
||
'formatter': 'standard',
|
||
'filename': f'log/{HOSTNAME}/qr/fcb_photo_review_qr.log',
|
||
'when': 'midnight',
|
||
'interval': 1,
|
||
'backupCount': 14,
|
||
'encoding': 'utf-8',
|
||
},
|
||
'sql': {
|
||
'class': 'logging.handlers.TimedRotatingFileHandler',
|
||
'level': 'INFO',
|
||
'formatter': 'standard',
|
||
'filename': f'log/{HOSTNAME}/sql/fcb_photo_review_sql.log',
|
||
'when': 'midnight',
|
||
'interval': 1,
|
||
'backupCount': 14,
|
||
'encoding': 'utf-8',
|
||
},
|
||
},
|
||
|
||
# loggers定义了日志记录器
|
||
'loggers': {
|
||
'': { # 根记录器
|
||
'handlers': ['console', 'file'], # 关联的处理器
|
||
'level': 'DEBUG', # 根记录器的级别
|
||
'propagate': False, # 是否向上级传播日志信息
|
||
},
|
||
'ucloud': {
|
||
'handlers': ['console', 'ucloud'],
|
||
'level': 'DEBUG',
|
||
'propagate': False,
|
||
},
|
||
'error': {
|
||
'handlers': ['console', 'file', 'error'],
|
||
'level': 'DEBUG',
|
||
'propagate': False,
|
||
},
|
||
'qr': {
|
||
'handlers': ['console', 'qr'],
|
||
'level': 'DEBUG',
|
||
'propagate': False,
|
||
},
|
||
'sql': {
|
||
'handlers': ['console', 'sql'],
|
||
'level': 'DEBUG',
|
||
'propagate': False,
|
||
},
|
||
},
|
||
}
|