前言

使用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日志输出相关推荐

  1. python3 装饰器参数_Learn Python 3:装饰器

    一.理解装饰器 通俗点说,当我们想给一个函数增强额外的功能,但又不想修改原函数的定义,同时新增的功能其它函数可能也需要使用,装饰器就是来解决这种需求的,将与原函数功能无关的代码提取出来,实现复用,在代 ...

  2. 华为如何在开发者选项观察错误日志_爬虫scrapy框架--log日志输出配置及使用

    1.在配置文件中设置日志输出文件名和日志等级 1.为什么以日期为文件名? 因为这样可以方便开发者查看每天的日志信息,同时也可以防止单文件log日志信息堆积的越来越多,所以将当天日志信息保存到当天的日志 ...

  3. log日志输出到文件:

    log日志输出到文件: 输出到不同的文件夹:(需要配置xml文件) <?xml version="1.0" encoding="UTF-8"?> & ...

  4. python3装饰器例子_python 装饰器(三):装饰器实例(一)

    示例 7-15 定义了一个装饰器,它会在每次调用被装饰的函数时计时,然后把经过的时间.传入的参数和调用的结果打印出来. 示例 7-15 一个简单的装饰器,输出函数的运行时间 importtimedef ...

  5. python3 装饰器_Python3 装饰器

    一 什么是装饰器呢? 装饰器本质上来说就是函数,功能就是为其它函数添加附加功能. 原则: 不修改被修饰函数的源代码 不修改被修饰函数的调用方式 组织结构: 装饰器=高阶函数+函数嵌套+闭包 实例1(P ...

  6. Python3 装饰器解析

    第6章 函数 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却不知道如何去学习更加高深的知识. 那么针对这三类人 ...

  7. python3 [装饰器] 总结

    装饰器的作用 装饰器本质上是一个高级Python函数,通过给别的函数添加@标识的形式实现对函数的装饰 2.装饰器的功能: 它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是 ...

  8. 多个模块的log日志输出

    今天研究了一下python标准库中的logging模块,在多个模块的情景下输出日志 import logging from logging_test2 import log_test# logging ...

  9. 39、Springboot 项目集成Log日志输出功能,并按每小时分组分割文件

    Logback的引入 之所以引入logback ,最主要原因是因为它非常强大的兼容性,能够自然平滑的支持log4j或者其他日志组件,官方文档非常的充分,对初学者十分友好,能够快速上手,它当前分为三个模 ...

最新文章

  1. 用异或来交换两个变量能提快速度是错误的
  2. glib中的GList ,GSList,GString,GTree,GTimer
  3. Enums and Structs in C#(C#里的枚举和结构) (from codeproject)
  4. java 18.9_Oracle: Java 11 (18.9 LTS) 正式上线!
  5. 人工智能时代号角已吹响 COMPUTEX如何凝聚AI这股力量?
  6. java中的html标签位置,Java 过滤所有html标签,复制文件到指定位置
  7. MDI多窗体1130
  8. hdu 2586 How far away ?(LCA模板)(倍增法)
  9. php测试宽带速度慢,性能测试问题排查一例——网络带宽瓶颈
  10. 【杂题总汇】HDU多校赛第十场 Videos
  11. ResNet 残差神经网络
  12. 2021 Pycharm汉化教程,两种方法,带图讲解,简洁明了
  13. SpringBoot整合Quartz
  14. CORDIC实现FPGA复数求模(Xilinx CORDIC IP 6.0)
  15. 水果之王之猕猴桃-系列五(孕期可以吃猕猴桃吗?)
  16. Python常用英文单词【最强总结】
  17. 华为面试题: 杨辉三角形的变形
  18. win10+gtx1050+tensorflow+cuda8.0+cudnn5.1配置踩到的坑(回忆)
  19. 为什么使用kbhit后按下键盘无反应?
  20. linux 本组其他组权限,linux中地用户组和各种权限

热门文章

  1. 基于asp.net706酒店客户关系管理系统
  2. Linux压缩包,解压缩包,vim,yum仓库,zip,用户管理
  3. 技术的鄙视链,其实是职业天花板问题!
  4. Python检测数据不完整的JPG图片
  5. 010序列检测电路设计
  6. 13 个 Mongodb GUI 可视化管理工具,总有一款适合你
  7. Python自定义豆瓣电影种类,排行,点评的爬取与存储(进阶下)
  8. 阿里云服务器被流量攻击怎么办
  9. 一年读完100本书(1/100)《微习惯》2021-01-18
  10. 习惯养成android软件,六款有助于养成良好习惯的APP(安卓)