2017-08-21 9 views
1

私は単にログメッセージをコンソールに出力する特定のフォーマットのPythonロガーを用意しようとしています。私はいろいろなことを試しましたが、ログコールごとに2行のコンソール出力が得られます。ここでPython logger double output

は私のコードです:出力付き

logger = logging.getLogger('my_logger') 
    logger.setLevel(logging.INFO) 

    # Create console handler 
    stream_handler = logging.StreamHandler() 
    formatter = logging.Formatter('%(levelname)s - %(asctime)s - %(name)s - %(message)s') 
    stream_handler.setFormatter(formatter) 
    logger.addHandler(stream_handler) 
    logger.info('TEST LOG info') 

INFO - 2017-08-21 14:30:00,751 - my_logger - TEST LOG info 
INFO:my_logger:TEST LOG info 

私はまさにこれをしなかったし、それが動作しませんでした:Disable output of root logger

何が起こっているすべてのアイデアを?私はルートロガーを使用するかどうかは関係ありませんが、私はただ一つの行を必要としています

+2

あなたが掲示したコードはあなたが望むものを行います、もし私がそれを実行すると、私はただ1つのログ行を得ます。あなたは正しい出力を見ていることを確認してください?あるいは、コード内の他のどこかでロガーを初期化しています。 –

+1

@IrmendeJongと合意しました。コードをテストしましたが、1行のみの出力です。 – rojeeer

答えて

0

上記のコードは実際に正しく動作しているはずです。私のスクリプトは非常にリーンであったが、非システムライブラリをインポートしていた。システムライブラリのどこかで、ロギングが設定されていて、出力に影響を与えていた。

関連する問題