繁体   English   中英

如何禁用 python 记录标准输出并将其放在日志文件中

[英]How to disable python logging stdout and have it just inside the log file

我想禁用我的脚本来打印来自日志记录命令的INFODEBUGWARNINGERROR ,并将其放在.log.err中。 这是我的配置:

def log(routine_name):
    """ Logging configuration """
    logger = logging.getLogger(_name_)
    logger.setLevel(logging.INFO)
    logging.StreamHandler(stream=None)

    formatter = logging.Formatter("%(asctime)s:%(levelname)s:%(name)s:%(message)s")

    file_handler = logging.FileHandler(routine_name)
    file_handler.setFormatter(formatter)

    error_handler = logging.FileHandler(routine_name.replace("log", "err"))
    error_handler.setFormatter(formatter)
    error_handler.setLevel(logging.ERROR)

    stream_handler = logging.StreamHandler()
    stream_handler.setFormatter(formatter)

    logger.addHandler(file_handler)
    logger.addHandler(stream_handler)
    logger.addHandler(error_handler)
    
    return logger

我试图从这篇文章中设置logger.propagate = False但没有用,它仍然打印所有内容。

谢谢

对我来说,这确实适用于 module.submodule 发出日志记录命令

logger = logging.getLogger("module.submodule")
fh = logging.FileHandler("logfile")
fh.setLevel(logging.DEBUG)
logger.addHandler(fh)
logger.disabled = True

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM