2018-11-18 loggin模块

2018-11-18  本文已影响0人  太阳出来我爬山坡

loggin 模块 学习

logging用法

  1. 初始化 logger = logging.getLogger(“name")
  2. 设置级别 logger.setLevel(logging.DEBUG),Logging中有NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL这几种级

别,日志会记录设置级别以上的日志

  1. 定义Handler,常用的是StreamHandler和FileHandler,
    StreamHandler:将日志在控制台输出
    FileHandler: 将日志记录到文件里面
  2. 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信息')

上一篇下一篇

猜你喜欢

热点阅读