Python3 装饰器进行log日志输出
前言
使用Python 装饰器decorator来对函数进行日志输出_ 2021年3月 测试可用
环境
Python 3.7
代码
代码目录:
logger.py -> 日志装饰器: 用来写log日志的装饰器,以及log的基本设置
test.py -> 测试函数:调用logger里面写好的装饰器来进行测试
test-function.log -> log日志:输出错误信息
运行:
python3 test.py
具体代码
logger.py
import logging
from logging.handlers import TimedRotatingFileHandler
import os
import inspect
import config
from functools import wraps
import tracebackdef _getLogger():'''init logger'''logger = logging.getLogger('test-function')# specifies the lowest-severity log message a logger will handle,# where debug is the lowest built-in severity level and critical is the highest built-in severity.# For example, if the severity level is INFO, the logger will handle only INFO, WARNING, ERROR, and CRITICAL# messages and will ignore DEBUG messages.logger.setLevel(logging.ERROR)# create file handler which logs messagesfh = RotatingFileHandler('test-function.log', maxBytes=1024*1024, backupCount=1)# create formatter and add it to the handlersformatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')fh.setFormatter(formatter)# add the handlers to loggerlogger.addHandler(fh)logger.setLevel(logging.INFO)return loggerdef decorator_log(func):@wraps(func)def log(*args, **kwargs):try:return func(*args, **kwargs)except Exception as e:_getLogger().error(f"\n{func.__qualname__} is error,here are details:\n{traceback.format_exc()}")return log
test.py
from logger import decorator_logclass Study:@staticmethod@decorator_logdef a():a = [1, 2, 3]# print(a)a[6] = 100 # this is the wrong codeStudy.a()
test-function.log
2021-03-16 18:27:17,874 - test-fcuntion - ERROR -
Study.a is error,here are details:
Traceback (most recent call last):File "/home/hyh/2020_HBMS/hbms-api/logger.py", line 33, in logreturn func(*args, **kwargs)File "/home/hyh/2020_HBMS/hbms-api/test.py", line 10, in aa[6] = 100
IndexError: list assignment index out of range
其他
如有收获 欢迎点赞
如有作用 欢迎留言
如有问题 欢迎指出
Python3 装饰器进行log日志输出相关推荐
- python3 装饰器参数_Learn Python 3:装饰器
一.理解装饰器 通俗点说,当我们想给一个函数增强额外的功能,但又不想修改原函数的定义,同时新增的功能其它函数可能也需要使用,装饰器就是来解决这种需求的,将与原函数功能无关的代码提取出来,实现复用,在代 ...
- 华为如何在开发者选项观察错误日志_爬虫scrapy框架--log日志输出配置及使用
1.在配置文件中设置日志输出文件名和日志等级 1.为什么以日期为文件名? 因为这样可以方便开发者查看每天的日志信息,同时也可以防止单文件log日志信息堆积的越来越多,所以将当天日志信息保存到当天的日志 ...
- log日志输出到文件:
log日志输出到文件: 输出到不同的文件夹:(需要配置xml文件) <?xml version="1.0" encoding="UTF-8"?> & ...
- python3装饰器例子_python 装饰器(三):装饰器实例(一)
示例 7-15 定义了一个装饰器,它会在每次调用被装饰的函数时计时,然后把经过的时间.传入的参数和调用的结果打印出来. 示例 7-15 一个简单的装饰器,输出函数的运行时间 importtimedef ...
- python3 装饰器_Python3 装饰器
一 什么是装饰器呢? 装饰器本质上来说就是函数,功能就是为其它函数添加附加功能. 原则: 不修改被修饰函数的源代码 不修改被修饰函数的调用方式 组织结构: 装饰器=高阶函数+函数嵌套+闭包 实例1(P ...
- Python3 装饰器解析
第6章 函数 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却不知道如何去学习更加高深的知识. 那么针对这三类人 ...
- python3 [装饰器] 总结
装饰器的作用 装饰器本质上是一个高级Python函数,通过给别的函数添加@标识的形式实现对函数的装饰 2.装饰器的功能: 它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是 ...
- 多个模块的log日志输出
今天研究了一下python标准库中的logging模块,在多个模块的情景下输出日志 import logging from logging_test2 import log_test# logging ...
- 39、Springboot 项目集成Log日志输出功能,并按每小时分组分割文件
Logback的引入 之所以引入logback ,最主要原因是因为它非常强大的兼容性,能够自然平滑的支持log4j或者其他日志组件,官方文档非常的充分,对初学者十分友好,能够快速上手,它当前分为三个模 ...
最新文章
- 用异或来交换两个变量能提快速度是错误的
- glib中的GList ,GSList,GString,GTree,GTimer
- Enums and Structs in C#(C#里的枚举和结构) (from codeproject)
- java 18.9_Oracle: Java 11 (18.9 LTS) 正式上线!
- 人工智能时代号角已吹响 COMPUTEX如何凝聚AI这股力量?
- java中的html标签位置,Java 过滤所有html标签,复制文件到指定位置
- MDI多窗体1130
- hdu 2586 How far away ?(LCA模板)(倍增法)
- php测试宽带速度慢,性能测试问题排查一例——网络带宽瓶颈
- 【杂题总汇】HDU多校赛第十场 Videos
- ResNet 残差神经网络
- 2021 Pycharm汉化教程,两种方法,带图讲解,简洁明了
- SpringBoot整合Quartz
- CORDIC实现FPGA复数求模(Xilinx CORDIC IP 6.0)
- 水果之王之猕猴桃-系列五(孕期可以吃猕猴桃吗?)
- Python常用英文单词【最强总结】
- 华为面试题: 杨辉三角形的变形
- win10+gtx1050+tensorflow+cuda8.0+cudnn5.1配置踩到的坑(回忆)
- 为什么使用kbhit后按下键盘无反应?
- linux 本组其他组权限,linux中地用户组和各种权限