python日志简单示例

示例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图书馆网页资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值