Как подавить вывод логгера только в лог-файл через стандартный вывод + лог-файл - PullRequest
0 голосов
/ 28 апреля 2019

Я настраиваю скрипты для обнаружения определенного типа хостов в Linux.Я хотел бы преобразовать большинство операторов print в частный файл журнала, чтобы он не отображался в консоли.Я использую модуль 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...