博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Python】装饰器实现日志记录
阅读量:4914 次
发布时间:2019-06-11

本文共 1220 字,大约阅读时间需要 4 分钟。

好的日志对一个软件的重要性是显而易见的。如果函数的入口都要写一行代码来记录日志,这种方式实在是太低效了,但一直没有找到更好的方法。后来用python写一些软件,了解到python的装饰器功能时,突然人品爆发,结合装饰器来记录日志那是绝对的简单有效!

 

下面简单演示一下用装饰器来协助记录Log,示例代码如下:

 

  1. #!/usr/bin/env python  
  2. def trace_func(func):  
  3.     ''''' 
  4.     A decorate function to track all function invoke information with DEBUG level 
  5.     Usage: 
  6.     @trace_func 
  7.     def any_function(any parametet) 
  8.     '''  
  9.     def tmp(*args, **kargs):  
  10.         print 'Start %s(%s, %s)...' % (func.__name__, args, kargs)  
  11.         return func(*args, **kargs)  
  12.     return tmp  
  13. @trace_func  
  14. def log_test_with_empty_parameter():  
  15.     pass  
  16. @trace_func  
  17. def log_test_with_many_parameter(a_int, b_string, c_list, d_dict):  
  18.     pass  
  19. @trace_func  
  20. def log_test_with_key_parameter(a = 'www', b = 1, c = [1,2]):  
  21.     pass  
  22. if __name__ == '__main__':  
  23.     log_test_with_empty_parameter()  
  24.       
  25.     log_test_with_many_parameter(1, 'wwww', [1,2,'c'], {
    1: 'a', 2 : 'ww'})  
  26.     log_test_with_key_parameter(1, 'wwww', c = [3, 4])  

 

 

 

运行结果如下:

 

 

  1. [root@localhost python2]# ./a.py   
  2. Start log_test_with_empty_parameter((), {})...  
  3. Start log_test_with_many_parameter((1, 'wwww', [1, 2, 'c'], {
    1: 'a', 2: 'ww'}), {})...  
  4. Start log_test_with_key_parameter((1, 'wwww'), {
    'c': [3, 4]})... 

参考资料:

Python 日志方法(装饰器):

利用python的装饰器函数来记录日志:

Python精选文章: 装饰器与AOP:

 

转载于:https://www.cnblogs.com/AmilyWilly/p/6861855.html

你可能感兴趣的文章
java语言将任意一个十进制数数字转换为二进制形式,并输出转换后的结果
查看>>
java相关。关于jsp中使用el表达式的格式,谢谢!
查看>>
GetDlgItem的用法小结
查看>>
java带包编译
查看>>
树状数组详解(重拾笔记)
查看>>
javascript深入理解js闭包
查看>>
PLSQL
查看>>
ASP.NET Core 应用程序Startup类介绍
查看>>
【python】-类的继承
查看>>
同一个POD中默认共享哪些名称空间
查看>>
HTTP协议详解
查看>>
xdebug调试的原理
查看>>
php 日期时间运算比较
查看>>
C#类、接口、虚方法和抽象方法
查看>>
Linq C#增删改查
查看>>
[转]第一章 Windows Shell是什么 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7987862】...
查看>>
iOS获取设备UUID和IDFA
查看>>
模糊查询
查看>>
linux 出现:-bash-3.2$提示符
查看>>
jsp电子商务 购物车实现之二 登录和分页篇
查看>>