随笔- 310  文章- 1  评论- 0  阅读- 85846 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from functools import wraps
  
class logit(object):
    def __init__(self, logfile='out.log'):
        self.logfile = logfile
  
    def __call__(self, func):
        @wraps(func)
        def wrapped_function(*args, **kwargs):
            log_string = func.__name__ + " was called"
            print(log_string)
            # 打开logfile并写入
            with open(self.logfile, 'a') as opened_file:
                # 现在将日志打到指定的文件
                opened_file.write(log_string + '\n')
            # 现在,发送一个通知
            self.notify()
            return func(*args, **kwargs)
        return wrapped_function
  
    def notify(self):
        # logit只打日志,不做别的
        pass
1
2
3
@logit()
def myfunc1():
    pass

  

1
2
3
4
5
6
7
8
9
10
11
12
class email_logit(logit):
    '''
    一个logit的实现版本,可以在函数调用时发送email给管理员
    '''
    def __init__(self, email='admin@myproject.com', *args, **kwargs):
        self.email = email
        super(email_logit, self).__init__(*args, **kwargs)
  
    def notify(self):
        # 发送一封email到self.email
        # 这里就不做实现了
        pass

  

  

 posted on   boye169  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2023-09-05 nginx配置详解
2023-09-05 flask设置静态文件目录、模板目录
点击右上角即可分享
微信分享提示