python之logging模块

一、logging模块

闲来无事,觉得logging模块比较有意思,就大概整理一下

二、logging模块的构成

logging模块,进去会看到三个包:init 文件,config,handler

handler就是预先定义了一些强大的handler,如果想要弄一些变化的Handler可以看看这一部分:

  RotatingHandler(文件轮训,文件达到指定大小可以更换文件)

  TimeRoatingFileHandler(时间文件轮训,估计是基于时间的)

  。。。。。

 

config基本都是处理配置的,我们就是简单使用,直接简单看看init文件就够了,如果想看看配置是如何工作的,可以详细查看

三、logging模块的简单剖析:

  1、一些错误的级别和对应的数字,以及一些关于日志等级的方法

  

  2、logger里面重要的类:

    Logger日志对象,代表日志记录的一个频道   

# 创建一个logger,可以使用getLogger方法,
loggger1 = logging.getLogger('testlogger1')
loggger1.setLevel(logging.WARNING)

# 直接将Logger类实例化也可以,可以直接指定level的级别
logger2 = logging.Logger('testlogger2',level=logging.INFO)

    Filter:过滤器,过滤相关的数据,看是否要记录

    Handler:分发器,日志相关的处理类日志事件的分发

    Formatter格式类,控制日志输出的样式

 

四、logging的配置

  1、简易配置,默认的Logger对象root

  2、代码配置

  3、文件配置

五、logging模块的使用:

  1、简易使用

#!/usr/bin/env python
# -*- coding: utf8 -*-
# __Author: "Skiler Hao"
# date: 2017/5/15 20:07import logging

# logging的简易使用,就是使用basicConfig,就是使用root Logger()不用大家声明,可以携带以下参数
#     filename  默认为StreamHandler,就是将日志内容输出到屏幕,指定file就是FileHandler,将内容输出到文件中
#     filemode  打开文件的模式,默认为a,追加
#     format    不使用默认的内容输出格式,使用指定的Formatter
#     datefmt   指定日志的时间格式
#     style  指定格式化字符是啥,默认是%,介个一般不指定,就用默认
#     level   记录日志的等级
#     stream  代替默认的StreamHandler,使用指定的StreamHandler,注意:指定了文件Handler,stream指定就会失效
#     handlers  给root Logger() 绑定多个handler对象,必须预先定义handler

logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
                    datefmt='%a, %d %b %Y %H:%M:%S',
                    filename='test.log',
                    filemode='w')
logging.debug('debug message')
logging.info('info message')
logging.warning('warning message')
logging.error('error message')
logging.critical('critical message')

 

posted @ 2017-05-15 20:43  skiler  阅读(335)  评论(0编辑  收藏  举报