# https://www.cnblogs.com/nancyzhu/p/8551506.html
import os
import time
import logging
PATH = lambda p: os.path.abspath(os.path.join(os.path.dirname(__file__), p))
# 创建 log_path
now = time.strftime('%Y%m%d%H%M%S') # 返回当前时间
log_path = PATH('../log') # 当前文件拼接/log
if not os.path.exists(log_path): # 判断是否存在
os.mkdir(log_path) # 创建文件
class Log(object):
"""定义日志类"""
def __init__(self, _name):
"""
初始化logger
:param _name: 写每条log的名字
"""
# 构建日志
self.logger = logging.getLogger(_name) # 初始化
self.logger.setLevel(logging.DEBUG) # 设置日志级别
# 创建一个日志文件处理程序
fh = logging.FileHandler(os.path.join(log_path, now + '.log'), encoding='utf-8') # 用于向一个文件输出日志信息
# 设置log file的具体级别
# fh.setLevel(logging.INFO)
# 创建一个日志终端处理程序
ch = logging.StreamHandler() # 向控制台输出日志信息
# 设置log terminal的具体级别
# ch.setLevel(logging.INFO)
# 定义日志输出格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') # 设置日志输出 时间、日志名、文本形式的日志、用户输出的消息
fh.setFormatter(formatter) # setFormatter()为该处理器选择一个格式化器
ch.setFormatter(formatter)
# 日志添加程序处理功能
self.logger.addHandler(fh)
self.logger.addHandler(ch)
def get_log(self):
"""
return logger
:return:
"""
return self.logger
if __name__ == '__main__':
logger = Log('lidi').get_log()
logger.info('info logger')
logger.debug('debug test logger')
logger库
最新推荐文章于 2024-05-15 09:44:27 发布