####################################################################
# !/usr/bin/env python3
# -*- coding:utf-8 -*-
####################################################################
import logging
import os
import time
from datetime import datetime
def log(func):
# 获取日志记录器, 记录日志等级
logger = logging.getLogger(__name__)
logger.setLevel('DEBUG')
# 设置日志格式
formatter = logging.Formatter(
"%(asctime)s - %(name)s - %(levelname)s - %(message)s")
# 输出到控制台的handler
ch = logging.StreamHandler()
# 配置默认日志格式
ch.setFormatter(formatter)
# 日志记录器增加到handler
logger.addHandler(ch)
# 输出到文件
log_dir=os.path.join(os.path.dirname(os.path.dirname(__file__)),"logs")
today = time.strftime('%Y%m%d', time.localtime(time.time()))
full_path=os.path.join(log_dir,today)
if not os.path.exists(full_path):
os.makedirs(full_path)
log_path=os.path.join(full_path,"dqs_pycheck.log")
file_handler = logging.FileHandler(log_path,encoding="utf8")
file_handler.setFormatter(formatter) # 可以通过setFormatter指定输出格式
logger.addHandler(file_handler)
def inner(*args, **kwargs):
# timestamp = datetime.now().strftime('%Y-%m-%d %H:%S:%M')
res = func(*args, **kwargs)
logger.debug(f"func: {func.__name__} {args} - > {res}")
return res
return inner
@log
def pluser(a, b):
return a + b
if __name__ == "__main__":
pluser(1, 2)
# 输出
> 2021-08-20 16:50:55,923 - __main__ - DEBUG - func: pluser (1, 2) - > 3
Python logging日志 装饰器
最新推荐文章于 2022-07-21 09:07:13 发布