vcast_license_usage_server/my_log.py
2025-01-13 08:46:49 +08:00

55 lines
1.6 KiB
Python
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import logging
import sys
from datetime import datetime
# 定义日志级别
TRACE = 5 # 自定义TRACE级别
logging.addLevelName(TRACE, 'TRACE')
class CustomLogger(logging.Logger):
def __init__(self, name):
super().__init__(name)
def trace(self, msg, *args, **kwargs):
"""添加TRACE级别的日志方法"""
if self.isEnabledFor(TRACE):
self._log(TRACE, msg, args, **kwargs)
def get_logger(name='vcast_license'):
"""获取自定义logger实例"""
# 注册自定义Logger类
logging.setLoggerClass(CustomLogger)
# 创建logger
logger = logging.getLogger(name)
logger.setLevel(logging.DEBUG)
# 如果logger已经有处理器直接返回
if logger.handlers:
return logger
# 创建控制台处理器
console_handler = logging.StreamHandler(sys.stdout)
console_handler.setLevel(logging.DEBUG)
# 创建格式化器
formatter = logging.Formatter(
'%(asctime)s [%(levelname)s] [%(name)s:%(lineno)d] %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
console_handler.setFormatter(formatter)
# 添加处理器到logger
logger.addHandler(console_handler)
return logger
# 测试代码
if __name__ == '__main__':
log = get_logger()
log.trace('这是一条TRACE日志')
log.debug('这是一条DEBUG日志')
log.info('这是一条INFO日志')
log.warning('这是一条WARNING日志')
log.error('这是一条ERROR日志')
log.critical('这是一条CRITICAL日志')