在(外部)函数中打印时,如何记录每个打印输出

我对记录器不是很熟悉,请允许我问一下。

基本上,我想记录我打印的所有内容。问题是,print行在外部文件中声明的函数中。例如,我的main.py文件如下所示

from do_run import do_run
import logging
if __name__ == "__main__":

    logging.basicConfig(level=logging.INFO, format='%(message)s')
    logger = logging.getLogger()
    logger.addHandler(logging.FileHandler('test.log', 'a'))
    global print
    print = logger.info
    do_run()

我在单独的python文件do_run.py中定义了do_run()函数中的打印行

def do_run():

    print('blah')

问题是'blah‘没有打印在'test.log’文件中,而我希望它打印在里面。

有没有简单的方法来解决这个问题?

转载请注明出处:http://www.xingnongyuan.com/article/20230522/2062335.html