Я настраиваю скрипты для обнаружения определенного типа хостов в 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