示例1:将日志简单输出到文件及控制台中
# -*- coding:utf-8 -*-
import logging
# from logging import handlers
from logging import FileHandler, StreamHandler
# FileHandler和StreamHandler分别对应将日志输出到文档、控制台
logger = logging.getLogger('check_log1') # 创建logger对象
logger.setLevel(logging.DEBUG) # 配置Logger对象的日志级别
logfile = FileHandler("check1.log") # 创建handler对象(输出到文件)
console = StreamHandler() # 创建handler对象(输出到控制台)
logfile.setLevel(logging.DEBUG) # 配置输出日志的级别
console.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s %(filename)s %(lineno)s %(message)s') # 配置日志的输出格式
logfile.setFormatter(fmt=formatter)
console.setFormatter(fmt=formatter)
logger.addHandler(logfile) # 添加处理程序的对象
logger.addHandler(console)
logger.debug("this is debug level test.")
logger.info("this is info level test.")
logger.warning('this is warning level test.')
示例2:通过配置文件生成日志
此部分具体参数及方法可查看官方文档:文档地址;配置参数说明文档
示例程序部分:
# -*- coding:utf-8 -*-
# import logging
import logging.config
logging.config.fileConfig('logging.conf') # 引用配置文件
# create logger
logger = logging.getLogger('simpleExample') # 获取配置文件中的logger对象
logger.debug('debug message')
logger.info('info message')
logger.warning('warn message')
logger.error('error message')
logger.critical('critical message')
# logging.debug('root level debug message')
示例配置文件(文件名为‘logging.conf’与程序中引用保持一致。使用下方配置文件,请删除其中的中文注释部分,否则会出现编解码错误):
[loggers]
keys=root,simpleExample
[logger_root]
level=DEBUG
handlers=consoleHandler
[logger_simpleExample]
level=DEBUG
handlers=consoleHandler,fileHandler # 指向两个handler对象
qualname=simpleExample # 程序通过该参数获取相应logger的名称
propagate=0
[handlers]
keys=consoleHandler, fileHandler
[handler_consoleHandler]
class=StreamHandler # 指定输出到控制台,若为输出到文件则此处为“FileHandler”
level=DEBUG
formatter=simpleFormatter # 使用的格式
args=(sys.stdout,)
[handler_fileHandler]
class=FileHandler # 输出到文件
level=DEBUG
formatter=simpleFormatter
args=('testing.log', 'w') # "testing.log"为要写入的日志文件文件名(任意名称);“w”为覆盖的方式写入,“a”为追加
[formatters]
keys=simpleFormatter
[formatter_simpleFormatter]
format=%(asctime)s-%(name)s-%(levelname)s-%(message)s
datefmt=
关于日志的详细说明可以参考:(1)python日志文档;(2)网页A;(3)360图书馆网页资料