Python模块学习——logging

2019-04-14 08:23发布

logging模块是在2.3新引进的功能,下面是一些常用的类和模块级函数
模块级函数 logging.getLogger([name]):返回一个logger对象,如果没有指定名字将返回root logger logging.debug()、logging.info()、logging.warning()、logging.error()、logging.critical():设定root logger的日志级别 logging.basicConfig():用默认Formatter为日志系统建立一个StreamHandler,设置基础配置并加到root logger中   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import logging import sys   LEVELS = {'debug': logging.DEBUG,           'info': logging.INFO,           'warning': logging.WARNING,           'error': logging.ERROR,           'critical': logging.CRITICAL}   if len(sys.argv) > 1:     level_name = sys.argv[1]     level = LEVELS.get(level_name, logging.NOTSET)     logging.basicConfig(level=level)   logging.debug('This is a debug message') logging.info('This is an info message') logging.warning('This is a warning message') logging.error('This is an error message') logging.critical('This is a critical error message')   $ python logging_level_example.py debug DEBUG:root:This is a debug message INFO:root:This is an info message WARNING:root:This is a warning message ERROR:root:This is an error message CRITICAL:root:This is a critical error message $ python logging_level_example.py info INFO:root:This is an info message WARNING:root:This is a warning message ERROR:root:This is an error message CRITICAL:root:This is a critical error message     Loggers Logger.setLevel(lel):指定最低的日志级别,低于lel的级别将被忽略。debug是最低的内置级别,critical为最高 Logger.addFilter(filt)、Logger.removeFilter(filt):添加或删除指定的filter Logger.addHandler(hdlr)、Logger.removeHandler(hdlr):增加或删除指定的handler Logger.debug()、Logger.info()、Logger.warning()、Logger.error()、Logger.critical():可以设置的日志级别   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 import logging   # create logger logger = logging.getLogger("simple_example") logger.setLevel(logging.DEBUG)   # create console handler and set level to debug ch = logging.StreamHandler() ch.setLevel(logging.DEBUG)   # create formatter formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")   # add formatter to ch ch.setFormatter(formatter)   # add ch to logger logger.addHandler(ch)   # "application" code logger.debug("debug message") logger.info("info message") logger.warn("warn message") logger.error("error message") logger.critical("critical message") $ python simple_logging_module.py 2005-03-19 15:10:26,618 - simple_example - DEBUG - debug message 2005-03-19 15:10:26,620 - simple_example - INFO - info message 2005-03-19 15:10:26,695 - simple_example - WARNING - warn message 2005-03-19 15:10:26,697 - simple_example - ERROR - error message 2005-03-19 15:10:26,773 - simple_example - CRITICAL - critical message   Handlers handler对象负责发送相关的信息到指定目的地。可以通过addHandler()方法添加多个多handler Handler.setLevel(lel):指定被处理的信息级别,低于lel级别的信息将被忽略 Handler.setFormatter():给这个handler选择一个格式 Handler.addFilter(filt)、Handler.removeFilter(filt):新增或删除一个filter对象
Formatters Formatter对象设置日志信息最后的规则、结构和内容,默认的时间格式为%Y-%m-%d %H:%M:%S,下面是Formatter