python中的logging模块

组建

loggers(日志记录器)----------------提供程序直接使用的接口

Handlers(日志处理器)--------------将记录的日志发送到指定的位置

Filters(日志过滤器)------------------用于过滤将特定的目录记录

Formatters(日志格式器)-----------用于控制日志信息的输出格式

使用步骤

一个规范的日志文件创建

1.创建log对象,设置全局等级
2.基于log对象创建对应的处理对象(写入文件,控制台打印出来)
3.定义记录日志的格式
4.将创建的处理对象Handler,formater分别添加到log对象
                                            
import logging

#简单使用
# log_format = '[%(asctime)s--%(levelname)s--%(message)s]'
# logging.basicConfig(level=logging.DEBUG,format=log_format,)
# logging.debug('this is a debug log,')


"""
一个规范的日志文件创建
1.创建log对象,设置全局等级
2.基于log对象创建对应的处理对象(写入文件,控制台打印出来)
3.定义记录日志的格式
4.将创建的处理对象Handler,formater分别添加到log对象
"""
# 1创建logd对象,并设置全局等级
logger = logging.getLogger('%s_log'%__name__)
logger.setLevel(logging.DEBUG)

# 2创建Handler对象,用于写入到日志文件
fh = logging.FileHandler('06test_log.py',encoding = 'utf-8')
fh.setLevel(logging.ERROR)
# 2创建handler对象,用于在控制台打印出来
ch = logging.StreamHandler()
ch.setLevel(logging.WARNING)

# 3定义日志格式
formatter = logging.Formatter('[%(asctime)s--%(levelname)s--%(message)s]')

# 4添加log对象
fh.setFormatter(formatter)
ch.setFormatter(formatter)
logger.addHandler(fh)
logger.addHandler(ch)


if __name__ == '__main__':
    logger.warning('这是一个警告信息')
    logger.warning('This is a warning message')
    logger.error('这是一个错误信息')

运行结果—控制台显示

[2019-09-16 17:05:28,995--WARNING--这是一个警告信息]
[2019-09-16 17:05:28,996--WARNING--This is a warning message]
[2019-09-16 17:05:28,997--ERROR--这是一个错误信息]

运行结果—文件中内容,因为我多跑了几次,就是这样重复了

[2019-09-16 17:01:39,670--WARNING--This is a warning message]
[2019-09-16 17:01:39,670--ERROR--这是一个错误信息]
[2019-09-16 17:02:37,099--WARNING--这是一个警告信息]
[2019-09-16 17:02:37,100--WARNING--This is a warning message]
[2019-09-16 17:02:37,100--ERROR--这是一个错误信息]
[2019-09-16 17:03:29,474--WARNING--这是一个警告信息]
[2019-09-16 17:03:29,474--WARNING--This is a warning message]
[2019-09-16 17:03:29,474--ERROR--这是一个错误信息]
[2019-09-16 17:04:25,441--ERROR--这是一个错误信息]
[2019-09-16 17:05:28,997--ERROR--这是一个错误信息]

formatter格式

%(asctime)s              日志发生的事件
%(levelname)s            该日志记录的日志级别
%(message)s				 日志记录的文本内容
%(name)s				 所使用的日志器名称,默认是'root'
%(pathname)s			 调用日志记录函数的文件全路径
%(filename)s 			 调用日志记录函数的文件名
%(funcname)s 			 调用日志记录函数的函数名
%(lineno)d				 调用日志记录函数的代码所在行数

你可能感兴趣的:(python基础)