ロギング-Pythonでの便利なロギングのためのライブラリ

いずれの開発でも、遅かれ早かれログを保持する必要があります。これは、デバッグメッセージを印刷で印刷するプログラムを顧客に提供しないためです。ケース)、そしてそれでpythonには非常に強力で便利なライブラリがあり、それから私はそれについて話をしようとします。

まず、ライブラリを接続し、コンソールにさまざまなタイプのメッセージを表示しようとします。

#log.py #!/usr/bin/python # -*- coding: utf-8 -*- import logging #   logging.debug( u'This is a debug message' ) #   logging.info( u'This is an info message' ) #   logging.warning( u'This is a warning' ) #   logging.error( u'This is an error message' ) #   logging.critical( u'FATAL!!!' ) 


結論として、次のものが得られます。

 WARNING:root:This is a warning ERROR:root:This is an error message CRITICAL:root:FATAL!!! 


ご覧のように、出力ではデバッグメッセージと情報メッセージを除くすべてのものが取得されるため、エラーレベルをロガー設定に転送する必要があります。

 logging.basicConfig(level = logging.DEBUG) 


エラー出力への最初の呼び出しの前に構成パラメーターを送信する必要があることをすぐに予約したいのですが、ここにコードがあります:

 #log.py #!/usr/bin/python # -*- coding: utf-8 -*- import logging logging.basicConfig(level = logging.DEBUG) #   logging.debug( u'This is a debug message' ) #   logging.info( u'This is an info message' ) #   logging.warning( u'This is a warning' ) #   logging.error( u'This is an error message' ) #   logging.critical( u'FATAL!!!' ) 


出力後、すべてのメッセージが表示されます。

 DEBUG:root:This is a debug message INFO:root:This is an info message WARNING:root:This is a warning ERROR:root:This is an error message CRITICAL:root:FATAL!!! 


しかし、すべて同じですが、その出力は理解しにくいように見えます。このため、表示されるメッセージの形式をロガー構成で設定することもでき、すべての属性を見ることができます( こちら ):

 logging.basicConfig(format = u'%(filename)s[LINE:%(lineno)d]# %(levelname)-8s [%(asctime)s] %(message)s', level = logging.DEBUG) 


出力後、次のメッセージが表示されます。
 log.py[LINE:33]# DEBUG [2012-05-25 00:11:58,466] This is a debug message log.py[LINE:34]# INFO [2012-05-25 00:11:58,466] This is an info message log.py[LINE:35]# WARNING [2012-05-25 00:11:58,466] This is a warning log.py[LINE:36]# ERROR [2012-05-25 00:11:58,467] This is an error message log.py[LINE:37]# CRITICAL [2012-05-25 00:11:58,467] FATAL!!! 


すでにログのようなものであり、ファイル名とメッセージが呼び出された行を見ることができますが、開発中の作業中にそれらを表示するのは良いことですが、プロジェクトを送信するときはファイルに書き込む方が良いので、ここにも書きましょうログを書き込む場所を示すために、構成用のパラメーターが提供されます。
 logging.basicConfig(format = u'%(levelname)-8s [%(asctime)s] %(message)s', level = logging.DEBUG, filename = u'mylog.log') 


これで、ログはfilenameパラメーターで指定されたファイルに書き込まれます。実際、このロガーには多くの機能があります。ロガーでの作業を開始するために必要なもののみを示しました。より詳細な情報を読み取ることができます。 docs.python.org/library/logging.html

Source: https://habr.com/ru/post/J144566/


All Articles