2016-04-27 6 views
1

logging.INFOに設定したほとんどのプログラムで使用するロガーがあります。これは私にとって、ログに記録されたものは必ずしも警告などではないので、最も合理的な設定です。問題はrequestsurllibです。それぞれのHTTP要求に対してlogging.INFOを使用してください。これは私のETLプロセスのいくつかの超ロング・ログを作成しますが、必ずしも役立つとは限りません。http要求、コンテキストマネージャまたはカスタムログレベルのログノイズを削減しますか?

私は、有用なロギング情報がないETL部分の間にスクリプトの全体的なレベルをlogging.WARNINGに設定するコンテキスト管理機能を最初に作成することを考えました。もう1つの方法は、logging.INFOlogging.WARNINGの間にカスタムログレベルを作成することです。その目的は、より再利用可能で、より効率的に動作するでしょうか?

答えて

1

私のロガーを設定するときは、logging.getLogger('requests').propagate = Falseを追加して、のログを汚染しないようにします。例えば

def init_logger(config_file=None, log_level=logging.INFO): 
    # Configure the logging system 
    if config_file: 
     logging.config.fileConfig(config_file, disable_existing_loggers=False) 
    else: 
     logging.basicConfig(level=log_level) 

    # Avoid output from the requests module 
    logging.getLogger('requests').propagate = False 


def main(): 
    init_logger(…) 


if __name__ == '__main__': 
    main() 
関連する問題