import os
import colorlog
current_path = os.path.abspath(os.path.dirname(__file__))
class LogHelp :
"""日志辅助类"""
_logger = None
_close_imme = True
@staticmethod
def set_close_flag(flag):
LogHelp._close_imme = flag
@staticmethod
def _initlog():
import logging
import colorlog
LogHelp._logger = logging.getLogger()
# 输出到文件
logfile = 'convert.log'
hdlr = logging.FileHandler(logfile)
# 创建一个ColorFormatter来设置日志消息的颜色
color_formatter = colorlog.ColoredFormatter(
'%(log_color)s%(asctime)s - %(levelname)s - %(message)s',
log_colors={
'DEBUG': 'yellow',
'INFO': 'green',
'WARNING': 'yellow',
'ERROR': 'red',
'CRITICAL': 'red,bg_white',
}
)
# 将ColorFormatter添加到StreamHandler
formatter = logging.Formatter('%(asctime)s|%(levelname)s|%(lineno)d|%(funcName)s|%(message)s')
hdlr.setFormatter(color_formatter)
LogHelp._logger.addHandler(hdlr)
# 输出到屏幕
hdlr2 = logging.StreamHandler()
hdlr2.setFormatter(color_formatter)
hdlr2.setLevel(logging.INFO)
LogHelp._logger.addHandler(hdlr2)
LogHelp._logger.setLevel(logging.NOTSET)
#LogHelp._logger.setLevel(logging.INFO)
# LogHelp._logger.info("\n\n\n")
# LogHelp._logger.info("logger is inited!")
@staticmethod
def get_logger() :
if LogHelp._logger is None :
LogHelp._initlog()
return LogHelp._logger
@staticmethod
def close() :
if LogHelp._close_imme:
import logging
if LogHelp._logger is None :
return
logging.shutdown()
# log macro
LOG_DEBUG=LogHelp.get_logger().debug
LOG_INFO=LogHelp.get_logger().info
LOG_WARN=LogHelp.get_logger().warning
LOG_ERROR=LogHelp.get_logger().error
FOREGROUND_RED = 0x0c # red.
FOREGROUND_GREEN = 0x0a # green.
FOREGROUND_BLUE = 0x09 # blue.
# 按间距中的绿色按钮以运行脚本。
if __name__ == '__main__':
LOG_INFO("hahhahah")
Python日志使用
于 2024-03-06 11:16:10 首次发布