Python:自动记录类中每个方法的名称和输出

标签 python logging

我有一个模块,它是 C 程序的包装类。

每种方法都有不同的输入,但输出通常是相同的,即文件名。

class Wrapper(object): 
    def wrapper1(self, infile, outfile):
        do_stuff

        log.info('wrapper1:%s' %outfile)

在我意识到我想要这种行为之前,我已经编写了 50 个方法。

另外,必须有一种优雅的方式来添加记录器,而不需要将该行添加到所有方法中。

干杯

最佳答案

使用 decorator :

import functools
def log(func):
    @functools.wraps(func)
    def wrapper(self, infile, outfile):
        retval = func(self, infile, outfile)
        log.info('wrapper1:%s' %outfile)
        return retval
    return wrapper

class Wrapper(object):
    @log
    def wrapper1(self, infile, outfile):
        do_stuff

关于Python:自动记录类中每个方法的名称和输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23281185/

相关文章:

java - 禁用烦人的 PODAM 日志

python - 为什么我收到 NameError : name 'ActionChains' is not defined?

python - 从 openCV 轮廓创建路径

java - 将输出记录到数据库中

c# - 如何组织集中日志记录?

logging - Docker日志文件:如何知道笔记的时间?

jQuery - 如何在错误时记录文件

python - 在 Python 中从字符串创建路径和文件名

python - 将终端输出写入文件

python - 让用户上传 Python 脚本执行