【1】如何优雅的记录日志? logging

logging 模块

1 小例子: 在log文件输出log

# 内置库,不用安装
import logging 


logging.basicConfig(
    filename="test.log",  # 日志保存文件
    filemode="w",  # 文件权限
    datefmt="%d-%M-%Y %H:%M:%S",  # 打印的时间格式
    format="%(asctime)s %(name)s:%(levelname)s:%(message)s",  # 打印的日志消息的格式
    level=logging.DEBUG  # 打印的日志级别 >= 此级别的信息会被打印:NOTSET、DEBUG、INFO、WARNING、ERROR、CRITICAL
)

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 message')
结果
# test.log
12-40-2019 14:40:17 root:DEBUG:This is a debug message
12-40-2019 14:40:17 root:INFO:This is an info message
12-40-2019 14:40:17 root:WARNING:This is a warning message
12-40-2019 14:40:17 root:ERROR:This is an error message
12-40-2019 14:40:17 root:CRITICAL:This is a critical message
异常消息捕获
try:
    10 / 0
except Exception as e:
    logging.exception(e)

参数

参数名参数描述
filename日志输出到文件的文件名
filemode文件模式,r[+]、w[+]、a[+]
format日志输出的格式
datefat日志附带日期时间的格式
style格式占位符,默认为 “%” 和 “{}”
level设置日志输出级别(默认:WARNING)

2 分别在控制台、log 文件输出不同的log消息

import logging
import logging.handlers


# 根logger对象,后面所有的日志输出都调的是它
logger = logging.getLogger("logger")

# handler1: 输出到屏幕; handler2: 输出到文件
handler1 = logging.StreamHandler()
handler2 = logging.FileHandler(filename="test.log", encoding="utf-8")

# 屏幕打印error级别消息; 文件输出DEBUG级别消息
handler1.setLevel(logging.ERROR)
handler2.setLevel(logging.DEBUG)

formatter = logging.Formatter("%(asctime)s %(name)s %(levelname)s %(message)s")
handler1.setFormatter(formatter)
handler2.setFormatter(formatter)

logger.addHandler(handler1)
logger.addHandler(handler2)

logger.info('This is an customer info message')
logger.debug('This is a customer debug message')
logger.warning('This is a customer warning message')
logger.error('This is an customer error message')
logger.critical('This is a custo
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值