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))

你可能感兴趣的:(python,python,开发语言,日志,logging)