ページへ戻る

− Links

 印刷 

Python​/loggingを使ったログの出力 のバックアップ差分(No.2) :: NJF Wiki

xpwiki:Python/loggingを使ったログの出力 のバックアップ差分(No.2)

« Prev[4]  Next »[5]
1: 2016-12-14 (水) 05:36:06 njf[6] ソース[7] バックアップ No.1 を復元して編集[8] 2: 2016-12-14 (水) 06:15:56 njf[6] ソース[9] バックアップ No.2 を復元して編集[10]
Line 7: Line 7:
*使い方 [#y6ff9a66] *使い方 [#y6ff9a66]
 +**基本的な出力 [#r7dfa599]
loggingでの簡単な例は以下の通りです。 loggingでの簡単な例は以下の通りです。
Line 22: Line 23:
ログのレベルには以下の物があります。 ログのレベルには以下の物があります。
 +|レベル|対応メソッド|使いどころ|
 +|DEBUG|debug|デバック用の情報など|
 +|INFO|info|予定通りのことが起こった場合など|
 +|WARNING|warning|問題が起こりそうな場合の警告|
 +|ERROR|error|一部の機能が実行できないようなエラー|
 +|CRITICAL|critical|プログラム自体が実行できない重大なエラー|
 +例えばログのレベルをINFOにしていると、DEBUGレベルであるdebugメソッドのログは出力されず、残りのinfo、worning,error、criticalが出力されます。
 +これ以外に例外発生時のみに使う「exception」やレベルを指定して実行するlogメソッドもあります。
-&font(Lime){記事制作中};+ logging.log(logging.DEBUG,"デバッグ") 
 + 
 +これらのメソッドの引数はマルチバイト文字があってもStr型でもUnicode型でも出力できます。 
 + 
 +また 
 + ;logging.info('info %s',"test") 
 +のように「%」書式を使うこともできます。 
 + 
 +**日付と時間の出力 [#pba4f949] 
 + 
 +loggingの出力はデフォルトでは 
 + 
 + INFO:root:info test 
 + 
 +のようになっています。 
 +つまり「ログレベル:階層:メッセージ」です。 
 +階層はloggerの階層だそうですが、あまり使いそうにないので気にしなくても良いと思います。 
 + 
 +実際に使う時には日付と時間がないと、実用にはならないでしょう。 
 +「日付:メッセージ」とするには「logging.basicConfig」にformatを指定します。 
 + 
 + logging.basicConfig(filename='test.log',format = "%(asctime)s:%(message)s",level=logging.DEBUG) 
 + 
 +ここで「%(asctime)s」が日付と時間で、「%(message)s」がメッセージです。 
 + 
 +**ソースコードの行数を表示する [#u2b92169] 
 + 
 +ログの出力で他によくほしくなるものとしてソースコードの行数があります。 
 +「logging」にその機能はありませんが、「inspect」を使えば簡単に表示できます。 
 + 
 + import logging 
 + import inspect 
 + 
 + logging.info('line:%d',inspect.currentframe().f_lineno) 
 + 
 +他に関数名やファイル名などもとれます。 
 + logging.info('function:%s',inspect.currentframe().f_code.co_name) 
 + logging.info('filename:%s',inspect.currentframe().f_code.co_filename)
« Prev[4]  Next »[5]