Python TimedRotatingFileHandler регистрирует в файл и stderr - PullRequest
4 голосов
/ 04 июля 2011

Я пытаюсь включить простой вход в мое приложение, используя TimedRotatingFileHandler.Однако я получаю вывод как в обозначенный файл, так и в стандартную ошибку.Я сократил проблему до небольшого примера:

import logging, logging.handlers
import sys

logging.basicConfig(format='%(asctime)s %(message)s')
loghandler = logging.handlers.TimedRotatingFileHandler("logfile",when="midnight")
logger = logging.getLogger()
logger.setLevel(logging.INFO)
logger.addHandler(loghandler)

for k in range(5):
    logger.info("Line %d" %  k)

Я получаю 5 строк журнала как в «лог-файле», так и в stderr этой программы.Что я делаю не так?

Ответы [ 2 ]

10 голосов
/ 04 июля 2011

Это способ печати только в файлах журнала, а не в stdout / stderr:

import logging
from logging.handlers import TimedRotatingFileHandler

logHandler = TimedRotatingFileHandler("logfile",when="midnight")
logFormatter = logging.Formatter('%(asctime)s %(message)s')
logHandler.setFormatter( logFormatter )
logger = logging.getLogger( 'MyLogger' )
logger.addHandler( logHandler )
logger.setLevel( logging.INFO )

for k in range(5):
    logger.info("Line %d" %  k)
4 голосов
/ 04 июля 2011

logging.basicConfig устанавливает обработчик, который печатает со стандартной ошибкой.logger.addHandler(loghandler) устанавливает TimedRotatingFileHandler.

Вы хотите подавить вывод до стандартной ошибки?Если это так, просто удалите вызов на logging.basicConfig.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...