如何抑制记录器的输出仅通过stdout + logfile输出到日志文件

时间:2019-04-28 06:47:05

标签: python-3.x python-logging

我正在设置脚本来检测Linux上特定类型的主机。 我想将大多数打印语句转换为私有日志文件,以便它不会显示在控制台中。 我在主脚本中使用了logger模块,它的工作是将其重定向到日志文件,但也在控制台中显示,我想避免这种情况。

main_script.py

import logging
import child_program

    private_logfile = instance_base + "/planning_area/" + activity + "/jdk_private.log"

    formatter = logging.Formatter('%(asctime)s, %(name)s - %(funcName)s() - %(levelname)s - %(message)s')
    # formatter = logging.Formatter('(message)s')

    file_handler = logging.FileHandler(filename=private_logfile)
    file_handler.setFormatter(formatter)
    private_logger = logging.getLogger("private")
    private_logger.setLevel(logging.INFO)
    private_logger.addHandler(file_handler)

child_program.py

import logging
private_logger = logging.getLogger("private")
def validate():
    private_logger.info("Inside child_program")

控制台中的输出:

INFO:private:inside child_program

cat jdk_private.log

2019-04-23 19:04:18,571, private - validate() - INFO - inside child_program

0 个答案:

没有答案