python模块之logging

常用模块之logging

logging模块是用来记录日志的

直接上用法:

import logging

#进行基本日志配置

logging.basicConfig(filename = 'access.log',  #指定日志文件

                                  format = '%(asctime)s - %(name)s - %(levelname)s - %(moudle)s - %(message)s',  #指定日志格式

                                  datefmt = '%Y-%m-%d %H : %M : %S  %p'  #指定日期格式

                                  level = 10 #指定日志记录级别

)

#日志级别遵循原则:自下而上进行匹配

#debug ——>info——>warning——>error——>critical

扫描二维码关注公众号,回复: 1651472 查看本文章

logging.debug('调试信息') #10

logging.info('正常信息') #20

logging.warning('警告信息') #30

logging.error('错误信息') #40

logging.critical('严重错误信息') #50

#我们运行以上代码的时候会在文件中显示上述5条日志记录,我们发现了一些问题:

只能在文件中显示日志信息,不能指定字符编码

于是我们进行改进,我们边通过写个小例子来验证:

import logging

#logging模块中包含四种角色,下面一一说明:logger,filter, formatter, handler

#1. logger:负责产生日志信息

logger1 = logging.gerLongger('a message')

#2. filter :负责筛选日志,这里我们不做配置

#3. formatter :控制日志输出格式

formatter1 = logging.Formatter(

        fmt = '%(asctime)s:%(name)s:%(levelname)s:%(message)s',   #日志格式

        datefmt = '%Y - %m - %d  %X'  #时间格式

)

formatter2=logging.Formatter(

    fmt='%(asctime)s:%(message)s',

    datefmt='%Y-%m-%d %X'

)

# 4. handler :负责日志输出目标

h1=logging.FileHandler(filename='a1.log',encoding='utf-8') #输出至a1.log文件中

h2=logging.FileHandler(filename='a2.log',encoding='utf-8') #输出至a2.log文件中 

sm=logging.StreamHandler() #输出到屏幕

# 5. 绑定logger对象与handler

logger1.addHandler(h1)

logger1.addHandler(h2)

logger1.addHandler(sm)  #将同一文件绑定三个输出目标,以获得不同的记录格式

#6、绑定handler对象与formatter对象

h1.setFormatter(formatter1)

h2.setFormatter(formatter1)

sm.setFormatter(formatter2)


#7、设置日志级别:可以在两个关卡进行设置logger与handler

logger1.setLevel(10)

h1.setLevel(10)

h2.setLevel(10)

sm.setLevel(10)

logger1.info('this is a test message')

猜你喜欢

转载自blog.csdn.net/zhou_le/article/details/80735654