【python】模块——logging模块

一、日志相关

1.日记级别(由低到高)

(1)notse    (2)debug    (3)info    (5)warning    (5)error     (6)critical

2.日志格式:logger名称:用户输出消息

3.默认级别为warning,只会显示warning及以上级别的信息:warning    error    critical

import logging

logging.debug('debug message')
logging.info('info message')

logging.warning('warning message')#只会打印默认级别及以上级别的信息
logging.error('error message')
logging.critical('critical message')

# WARNING:root:warning message
# ERROR:root:error message
# CRITICAL:root:critical message
设置和级别日志信息

二、logging模块

1.设置日志——logging.basicConfig

#-----------------------------------logging.basicConfig
logging.basicConfig(
    level = logging.DEBUG,        #设置默认级别
    filename = "logger.log",    #将日志信息放入文件中,没有文件则自动生成一个文本
    filemode = "w",              #默认为追加模式,当filemode="w"时,只会存储当前日志信息
    format = "%(asctime)s %(filename)s[%(lineno)d]  %(message)s"   #设定日志打印格式
    '''
    %(asctime)s    显示时间
    %(filename)s     显示文件名
    %(lineno)d  显示日志行号
    %(message)s    显示信息
    '''
    )

 

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

2.创建logger对象

def logger():
    logger=logging.getLogger()  #创建logger对象

    fh=logging.FileHandler("test_log")   #向test_log文件发送信息fh
    #ch=logging.StreamHandler()     #向屏幕发送信息对象ch

    fm=logging.Formatter("%(asctime)s  %(message)s")    #设定日志格式

    fh.setFormatter(fm)    #修改fh日志格式为fm
    #ch.setFormatter(fm)    #修改ch日志格式为fm

    logger.addHandler(fh)  #将fh对象功能添加到logger对象中
    #logger.addHandler(ch)#将ch对象功能添加到logger对象中
    logger.setLevel("DEBUG")    #设定logger的日志等级

    return logger

 

(2)应用logger对象

logger=logger()    #创建对象

#设置logger对象的日志信息
logger.debug("debug")
logger.info("info")
logger.warning("warning")
logger.error("error")
logger.critical("critical")

 

3.注意:

(1)创建对象函数可以传入参数logging.getLogger(‘son_root’)

         传入参数相同的对象实际为同一子个对象,两者同步修改。

         不掺入参数,默认为根对象。

(2)打印子对象日志信息时会默认打印所有父级对象的日志信息

(3)子对象的子对象表示方法——'son_root.grand_root'   创建一个对象,为子对象的子对象

————————————————————结束————————————————————

 

posted on 2018-07-23 21:08  索米尔  阅读(66)  评论(0)    收藏  举报

导航