python中日志模块使用方法,见如下代码:
# 定义一个日志收集器:
logger = logging.getLogger("test.py") # 没有参数默认为root,若写入参数,返回参数名称
# 定义日志收集器的级别
logger.setLevel(logging.DEBUG)
# 设置日志的格式
fmt = logging.Formatter('%(asctime)s-%(name)s-%(levelname)s-%(message)s')
# 将日志输出到指定文件
file_handler = logging.FileHandler('../log/mylog.txt')
# 设置日志处理器级别
file_handler.setLevel(logging.DEBUG)
# 日志处理器按照指定格式处理日志
file_handler.setFormatter(fmt)
# 输出到控制台
ch = logging.StreamHandler()
# 设置日志处理器级别
ch.setLevel(logging.DEBUG)
# 日志处理器按照指定格式处理日志
ch.setFormatter(fmt)
# 收集器和处理器对接
logger.addHandler(file_handler) # 输出到文件
logger.addHandler(ch) # 输出到控制台
本小白在封装日志模块时遇到如下问题,仅作为总结:
1、日志的格式、级别均可以存放在config.ini中,在读取config.ini文件时遇到如下问题:
? ? ?1> os.path.dirname输出的时不带本文件的绝对路径,os.path.abspath输出的是带本文件的绝对路径,而且有斜杠和反斜杠之分;
print(os.path.dirname(__file__))
print(os.path.abspath(__file__))
? ? ?输出:
? ? ? ? C:/Users/Acer/Desktop/demo3/demo_1 ? ? ? ? C:\Users\Acer\Desktop\demo3\demo_1\1.py
? ?2> 读取? config.ini中? ‘ %(asctime)s-%(name)s-%(levelname)s-%(message)s ’类型字段时,需要用到的RawConfigParser模块
def getconfig(cls):
config = RawConfigParser() # 实类化
config.read(cls.configpath,encoding='utf-8')
|