python - 常用模块 - logging模块,,python主要是通


python主要是通过logging模块来进行日志处理

很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误、警告等信息输出,python的logging模块提供了标准的日志接口,

你可以通过它存储各种格式的日志,logging的日志可以分为 debug(), info(), warning(), error(), critical() 5个级别,

  日志级别:
    DEBUG
    INFO
    WARNING
    ERROR
    CRITICAL
等级依次提高(打印的信息越来越少,DEBUG最详细)

 1 日志格式: 2     %(name)s            Logger的名字(默认root) 3     %(levelno)s         字形式的日志级别 依次为: 4                         DEBUG:10  INFO:20  WARNING:30  ERROR:40  CRITICAL:50 5     %(levelname)s       文本形式的日志级别 6     %(pathname)s        调用日志输出函数的模块的完整路径名,可能没有 7     %(filename)s        调用日志输出函数的模块的文件名 8     %(module)s          调用日志输出函数的模块名    9     %(message)s         用户输出的消息10     %(funcName)s        调用日志输出函数的函数名11     %(lineno)d          调用日志输出函数的语句所在的代码行12     %(created)f         当前时间,用UNIX标准的表示时间的浮 点数表示13     %(relativeCreated)d    输出日志信息时的,自Logger创建以 来的毫秒数14     %(asctime)s         字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒15     %(thread)d          线程ID。可能没有16    %(threadName)s      线程名。可能没有17     %(process)d         进程ID。可能没有

日志模块使用:

  1、最简单用法,打印到屏幕( 不用print,自带打印)

1 import logging2 logging.warning(‘user [root] attempted wrong password more than 3 times‘)3 logging.critical(‘server is down‘) 

#想要debug()、info() 或 error() 跟上面一样,添加上就是了

  2、设置时间

1 import logging2 logging.basicConfig(format=‘%(asctime)s %(message)s‘, datefmt=‘%Y-%m-%d %H:%M:%S‘)3 logging.warning(‘is when this event was logged.‘)

  3、把日志写到文件

1 import logging2 3 logging.basicConfig(filename=‘./file/logging.log‘,level=logging.DEBUG,format=‘%(asctime)s  %(name)s - %(levelname)s ->%(levelno)s :  %(message)s ‘, datefmt=‘%Y-%m-%d %H:%M:%S‘)4 logging.debug(‘This message should go to the log file‘)5 logging.info(‘So should this‘)6 logging.warning(‘And this, too‘)7 logging.error(‘And this, too‘)8 logging.critical(‘And this, too‘)

文件内容:

    2017-04-04 17:14:10 root - DEBUG ->10 : This message should go to the log file
    2017-04-04 17:14:10 root - INFO ->20 : So should this
    2017-04-04 17:14:10 root - WARNING ->30 : And this, too
    2017-04-04 17:14:10 root - ERROR ->40 : And this, too
    2017-04-04 17:14:10 root - CRITICAL ->50 : And this, too

  4、把日志同时写到文件和打印到屏幕 

 1 ‘‘‘ 2 Python 使用logging模块记录日志涉及四个主要类,使用官方文档中的概括最为合适: 3  4      logger提供了应用程序可以直接使用的接口; 5          Logger.setLevel(lel):指定最低的日志级别,低于lel的级别将被忽略。debug是最低的内置级别,critical为最高 6          Logger.addFilter(filt)、Logger.removeFilter(filt):添加或删除指定的filter 7          Logger.addHandler(hdlr)、Logger.removeHandler(hdlr):增加或删除指定的handler 8          Logger.debug()、Logger.info()、Logger.warning()、Logger.error()、Logger.critical():可以设置的日志级别 9 10      handler将(logger创建的)日志记录发送到合适的目的输出;11           Handler.setLevel(lel):指定被处理的信息级别,低于lel级别的信息将被忽略12           Handler.setFormatter():给这个handler选择一个格式13           Handler.addFilter(filt)、Handler.removeFilter(filt):新增或删除一个filter对象14 15      filter提供了细度设备来决定输出哪条日志记录;16 17      formatter决定日志记录的最终输出格式。18 ‘‘‘19 import logging20 21 #创建logger22 logger = logging.getLogger(‘XT-LOG‘)23 logger.setLevel(logging.DEBUG)  24      #设置全局的日志级别(全局的优先级高于局部的但是若局部的在全局之上,则保存局部的)25      26 #创建一个console handler,并且设置其日志级别为debug27 ch = logging.StreamHandler()28 ch.setLevel(logging.DEBUG)29 30 #创建一个file handler,并且设置其日志级别为warning31 fh = logging.FileHandler(‘./file/logging.log‘)32 fh.setLevel(logging.WARNING)33 34 #创建一个formatter(格式)35 formatter = logging.Formatter(‘%(asctime)s - %(name)s - %(levelname)s - %(message)s‘,datefmt=‘%Y-%m-%d %H:%M:%S‘)36 37 #把formatter添加到console handler和file handler38 ch.setFormatter(formatter)39 fh.setFormatter(formatter)40 41 #把console handler和file handler添加到logger42 logger.addHandler(ch)43 logger.addHandler(fh)44 45 #设置错误消息46 logger.debug(‘debug message‘)47 logger.info(‘info message‘)48 logger.warning(‘warning message‘)49 logger.error(‘error message‘)50 logger.critical(‘critical message‘)

以上输出到屏幕结果:

    2017-04-08 16:12:49 - XT-LOG - DEBUG - debug message
    2017-04-08 16:12:49 - XT-LOG - INFO - info message
    2017-04-08 16:12:49 - XT-LOG - WARNING - warning message
    2017-04-08 16:12:49 - XT-LOG - ERROR - error message
    2017-04-08 16:12:49 - XT-LOG - CRITICAL - critical message

python - 常用模块 - logging模块

评论关闭