logging类使用方法,给自己封装一个打日志的工具

笔者使用python脚本主要是把工作中的一些重复性劳动自动化处理,所以大多在自己本地的PyCharm上跑,有问题console打出来就好了。但是随着工具脚本部署到服务器给部门提供服务,就需要有日志进行留痕和问题定位了。所以将第三方库logging简单封装一下,在工程中方便调用。先上效果~

调用代码

封装的日志接口在logger.py,封装了4种日志接口(infodebugwarningerror),具体调用方法如下。

import logger

TAG = "TEST"
logger.log_i(TAG, "something want to write")
logger.log_d(TAG, "something want to debug")
日志文件输出效果

2023-06-23 16:41:12,640 INFO:[TEST]something want to write
2023-06-23 16:41:12,640 DEBUG:[TEST]something want to debug

控制台输出效果

2023-06-23 16:41:12,640 INFO:[TEST]something want to write
2023-06-23 16:41:12,640 DEBUG:[TEST]something want to debug

logger源码

很简单,就是将logging引入后进行日志文件名、格式等设置。其中为了方便在PyCharm上调试,增加了控制台输出,实际工具部署后,可以考虑删掉节省io输出成本。

import logging

# 设置日志输出级别为DEBUG
LOG_LEVEL = logging.DEBUG

# 构造日志打印对象
logger = logging.getLogger(__name__)
logger.setLevel(level=LOG_LEVEL)

# 定义日志打印格式 2023-06-23 16:41:12,640 INFO:message
formatter = logging.Formatter('%(asctime)s %(levelname)s:%(message)s')

# 日志文件打印
# 定义日志名称,有需要按日期打印的可以增加时间戳
handler = logging.FileHandler("log.log")
handler.setLevel(level=LOG_LEVEL)
handler.setFormatter(formatter)
logger.addHandler(handler)

# 控制台打印
# 部署服务可以考虑将该部分代码废弃
console = logging.StreamHandler()
console.setLevel(level=LOG_LEVEL)
console.setFormatter(formatter)
logger.addHandler(console)


def log_i(tag, msg):
    logger.info("[{}]{}".format(tag, msg))


def log_d(tag, msg):
    logger.debug("[{}]{}".format(tag, msg))


def log_w(tag, msg):
    logger.warning("[{}]{}".format(tag, msg))


def log_e(tag, msg):
    logger.error("[{}]{}".format(tag, msg))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kiba_zwei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值