pythonにlogログを追加する3つの出力方式の書き方


サマリ
  • logログは一般的に便利で、一般的には2つ目を使えばいいです.
  • 詳しく理解するには、3つ目の書き方をよく読むことをお勧めします.
  • logログの主な役割は以下の2点である.エラーチェックと分析2.logログ分析を行い,ユーザ画像を行う.

  • コード1:コンソールにlogログを出力する
    import logging
    
    logging.basicConfig(level=logging.WARNING,
                        format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
    
    #     log  
    logging.info('   loggging info message')
    logging.debug('   loggging debug message')
    logging.warning('   loggging a warning message')
    logging.error('   an loggging error message')
    logging.critical('   loggging critical message')
    

    コード2:ファイルにlogログを書き込む
    import logging
    
    logging.basicConfig(level=logging.WARNING,
                        filename='./log.txt',
                        filemode='w',
                        format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
    # use logging
    logging.info('   loggging info message')
    logging.debug('   loggging debug message')
    logging.warning('   loggging a warning message')
    logging.error('   an loggging error message')
    logging.critical('   loggging critical message')
    

    コード3:コンソールとファイルにlogログをそれぞれ出力
    import logging
    
    #    ,    logger
    logger = logging.getLogger()
    logger.setLevel(logging.INFO)  # Log          INFO
    
    #    ,    handler,        
    logfile = './log.txt'
    fh = logging.FileHandler(logfile, mode='a')  # open             
    fh.setLevel(logging.DEBUG)  #    file log     
    
    #    ,     handler,        
    ch = logging.StreamHandler()
    ch.setLevel(logging.WARNING)   #    console log     
    
    #    ,  handler     (  ,  ,  ,    ,    )
    formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
    fh.setFormatter(formatter)
    ch.setFormatter(formatter)
    
    #    , logger   handler  
    logger.addHandler(fh)
    logger.addHandler(ch)
    
    #     
    logger.debug('   logger debug message')
    logger.info('   logger info message')
    logger.warning('   logger warning message')
    logger.error('   logger error message')
    logger.critical('   logger critical message')
    #
    # DEBUG:     ,           
    # INFO:         
    # WARNING(  ):      ,            ,             (  。     ”)。           。
    # ERROR:      ,          
    # CRITICAL:       ,