python 3:loggingモジュール出力ログファイル

5482 ワード

python自動化テストスクリプト実行後、特定のファイルにログを保存するにはpythonのloggingモジュールを使用します.
参照コード:
import logging

def initLogging(logFilename,e):

  logging.basicConfig(
                    level = logging.INFO,
                    format ='%(asctime)s-%(levelname)s-%(message)s',
                    datefmt = '%y-%m-%d %H:%M',
                    filename = logFilename,
                    filemode = 'a')
  
  filehandler = logging.FileHandler(logFilename,encoding='utf-8')
  logging.getLogger().addHandler(filehandler )
  log = logging.exception(e)
  return log

1.ログレベル使用シーン:端末出力プログラムまたはスクリプトの使用方法:printがステータスの変更などのイベントの発生を報告する:logging.info()またはlogging.debug()特定の警告イベントが発生しました:logging.warn()は特定のエラーのイベントが発生しました:raiseは特定のエラーのイベントが発生しましたが、このエラーのためにプログラムが終了したくありません(例えば、プログラムはデーモンプロセスです):logging.error()、logging.exception(),logging.critical()
 
2.logging.basicConfig()関数では、loggingモジュールのデフォルト動作を特定のパラメータで変更できます.使用可能なパラメータは、level:ログレベルformatの設定:handlerで使用するログ表示フォーマットdatefmtの指定:日付時間フォーマットの指定、formatパラメータにasctimeがある場合は、指定した時間フォーマットfilename:指定したファイル名でFiledHandlerを作成する必要があります.このようにログは指定したファイルに格納されますfilemode:ファイルの開き方filenameを指定したときにこのパラメータを使用します.デフォルト値は「a」で「w」にも指定できます.
 
3.formatパラメータで使用可能なフォーマット列:%(name)s Loggerの名前%(levelno)s数値形式のログレベル%(levelname)sテキスト形式のログレベル%(pathname)sログ出力関数を呼び出すモジュールの完全なパス名%sがログ出力関数を呼び出すモジュールのファイル名%(module)sがログ出力関数を呼び出すモジュール名%(funcName)sがログ出力関数を呼び出す関数名%(lineno)dがログ出力関数を呼び出す文があるコード行%(created)f現在時刻をUNIX規格の時間を表す浮動小数点数で%(relativerCreated)dがログ情報を出力する場合、ロガー作成以降のミリ秒数%(asctime)s文字列形式の現在時刻.デフォルトのフォーマットは「2003-07-08 16:49:45896」です.カンマの後ろにはミリ秒%(thread)dスレッドIDがあります.%(threadName)sスレッド名がない場合があります.%dプロセスIDがない可能性があります.%(message)sユーザーが出力するメッセージがない可能性があります
 
4.loggingモジュールの理解、知っておくべきこと:Logger,Handler,Formatter,Filter(1)loggerはアプリケーションが直接使用できるインタフェースを提供し、各プログラムは情報を出力する前にLogger Logger.addHandler(hdlr)、Loggerを取得しなければならない.removeHandler(hdlr):指定したhandlerを追加または削除します.
(2)handlerは(loggerが作成する)ログを適切な目的の出力loggingに送信.FileHandlerはファイルにログ情報を出力するために使用されますが、FileHandlerはこのファイルを開くことができます.そのコンストラクション関数は、FileHandler(filename[,mode])filenameはファイル名であり、ファイル名を指定する必要があります.modeはファイルの開き方です
(3)filterは、どのログレコードを出力するかを決定するための細さデバイスを提供する
(4)formatter決定ログ記録の最終出力フォーマット
 
5.ログ結果の出力:
18-06-12 17:34-ERROR-string indices must be integers
Traceback (most recent call last):
  File "C:/Users/xx/Documents/GitHub/python3/main/run_test.py", line 70, in go_on_run
    op_header.write_cookie()
  File "C:\Users\xx\Documents\GitHub\python3\util\operation_header.py", line 30, in write_cookie
    cookie = requests.utils.dict_from_cookiejar(self.get_cookie())
  File "C:\Users\xx\Documents\GitHub\python3\util\operation_header.py", line 25, in get_cookie
    url = self.get_response_url()+"&callback=jQuery21008240514814031887_1508666806688&_=1508666806689"
  File "C:\Users\xx\Documents\GitHub\python3\util\operation_header.py", line 18, in get_response_url
    url = self.response['data']['url'][0]
TypeError: string indices must be integers

参照ドキュメント:
https://www.cnblogs.com/Xjng/p/8a481db3399827ecbdec888989f7c0d5.html
https://www.cnblogs.com/wenwei-blog/p/7196658.html