使Python记录器打印到文件而不是控制台

时间:2020-10-15 12:59:34

标签: python-3.x logging

我对日志记录模块还很陌生,但是在复制了一些代码之后,我已经在Internet上查询了,但是我找不到解决方案。 目前,我的记录器正在同时打印到文件和控制台,即使它只应该在文件上打印

我的代码:

Main.py

import logging,logging.config

....

if __name__=='__main__':

    fh=logging.handlers.RotatingFileHandler('avisador.log')
    fh.setLevel(logging.INFO)
    fh.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s: %(message)s', datefmt='%d-%b-%Y %H:%M:%S'))
    rootlog = logging.getLogger()
    rootlog.setLevel(logging.INFO)

    rootlog.addHandler(fh)

在一个不同的文件中,我有一个由这个Main调用的函数

Secondary.py

import logging

startlog=logging.getLogger('startweblog')

def Startroutine():
    ....
    startlog.info('We have started')

我在bot控制台和文件中得到了

15-Oct-2020 14:39:44 - INFO: We have started

我尝试了以下rootlog.setLevel(logging.CRITICAL),希望处理程序fh仍然写到文件,认为它是打印到控制台的根目录,但是我得到的是什么都没有打印无论哪个地方。

应如何配置它使其仅出现在文件中?

1 个答案:

答案 0 :(得分:0)

您需要像这样调用 logging.basicConfig

import logging
logging.basicConfig(filename='avisador.log', level=logging.DEBUG)