我在测试脚本中设置了日志记录功能,但是当我运行它时,所有消息都出现在控制台(stdout)上,日志文件写的很好,如何避免这种行为?我只希望消息在日志文件中。谢谢。
import logging
import logging.handlers
LOG_FILE = "/var/log/mylog.log"
logger = logging.getLogger('mylog')
logger.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler = logging.handlers.RotatingFileHandler(LOG_FILE, maxBytes=10*1024*1024, backupCount=5)
file_handler.setFormatter(formatter)
file_handler.setLevel(logging.DEBUG)
logger.addHandler(file_handler)
console_handler = logging.StreamHandler()
console_handler.setFormatter(formatter)
console_handler.setLevel(logging.DEBUG)
logger.addHandler(console_handler)
....
最佳答案
正如@alecxe所说,您应该将console_handler代码更改为:
console_handler = logging.StreamHandler()
console_handler.setFormatter(formatter)
console_handler.setLevel(logging.ERROR)
logger.addHandler(console_handler)
关于python - 启动脚本时,Python日志记录消息出现在stdout中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23063633/