loggin 模块 学习
logging用法
- 初始化 logger = logging.getLogger(“name")
- 设置级别 logger.setLevel(logging.DEBUG),Logging中有NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL这几种级
别,日志会记录设置级别以上的日志
- 定义Handler,常用的是StreamHandler和FileHandler,
StreamHandler:将日志在控制台输出
FileHandler: 将日志记录到文件里面 - formatter,定义了log信息的 内容 和格式,
例如:'[%(asctime)s] [%(levelname)s] %(message)s', '%Y-%m-%d %H:%M:%S'
Logging 中几种级别:NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL
Formatter 中已有格式 :
%(name)s Logger的名字�%(levelname)s 文本形式的日志级别�
%(message)s 用户输出的消息�
%(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒�
%(levelno)s 数字形式的日志级别�
%(pathname)s 调用日志输出函数的模块的完整路径名,可能没有�
%(filename)s 调用日志输出函数的模块的文件名�%(module)s 调用日志输出函数的模块名�
%(funcName)s 调用日志输出函数的函数名�
%(lineno)d 调用日志输出函数的语句所在的代码行�
%(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示�
%(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数�
%(thread)d 线程ID。可能没有�
%(threadName)s 线程名。可能没有�%(process)d 进程ID。可能没有
____________________示例_________
import logging
1初始化 日志对象 给日志取个名字
logger = logging.getLogger()
2设置级别
logger.setLevel(logging.DEBUG) #设置最低级别(一般都写DEBUG),小于它的级别都不纪录到文件或输出到控制台.
3定义handler
#控制台输出
sh = logging.StreamHandler()
sh.setLevel(logging.ERROR) #error 以上级别 才会在控制台输出,低于他的都不在控制台输出
#记录到文件
fh = logging.FileHandler('test_file.log')
fh.setLevel(logging.DEBUG) #debug级别以上才会写入log文件里面去.
4 定义格式化
formatter = logging.Formatter(
'时间:%(asctime)s,' #注意 s 后面的逗号 写到 引号里面去
'日志级别:%(levelname)s,'
'日志消息:%(message)s'
)
5 告诉控制台跟文件让他们以这样的格式显示
sh.setFormatter(formatter) #控制台 显示格式
fh.setFormatter(formatter) #文件 显示格式
6 添加handleer 到我们的对象里面去(把 日志内容 显示到控制台或 记录到文件)
logger.addHandler(sh)
logger.addHandler(fh)
if name== 'main':
logger.debug('这个是一个Debug信息')
logger.info('这个是一个info信息')
logger.error('这个是一个error信息')
logger.warn('这个是一个warn信息')
logger.critical('这个是一个critical信息')