如何停止记录器输出控制台上的日志

时间:2014-06-23 08:17:11

标签: python logging

我只想让file_logger将所有邮件记录到专用文件

但是当我运行脚本时,它会在屏幕上显示所有日志和文件。

我怎么能得到它。

def setup_logging(logging_file_path="logs/stdout.log"):
    global file_logger
    from os.path import dirname, realpath, isdir
    log_dir = dirname(realpath(logging_file_path))
    if not isdir(log_dir):
        os.makedirs(log_dir)  # it can built folder tree in one call
    file_logger = logging.getLogger()
    file_logger.addHandler(logging.FileHandler("{0}".format(logging_file_path)))
    file_logger.setLevel(logging.DEBUG)
    file_logger.propagate = False
    # file_logger.disabled = True # disable to log on the stdout

    return file_logger

1 个答案:

答案 0 :(得分:0)

您显示的代码无法登录到控制台(只要file_logger仅用于记录)。要获得控制台输出,必须调用basicConfig()或调用函数logging.debug()(即不是记录器方法,而是logging模块中的便捷函数 - 调用{在幕后{1}},或者明确添加了basicConfig()(在代码中没有显示)。