ホームページ  >  記事  >  バックエンド開発  >  Pythonモジュール学習ログ

Pythonモジュール学習ログ

黄舟
黄舟オリジナル
2016-12-17 16:47:11952ブラウズ

1. ログを画面に出力するだけです

logging をインポートします

logging.debug('これはデバッグ メッセージです')
logging.info('これは情報メッセージです')
logging.warning('これは警告メッセージです' )



画面に印刷:
WARNING:root:これは警告メッセージです

デフォルトでは、ログは画面にログを出力し、ログレベルは警告です
ログレベルのサイズ関係は次のとおりです: CRITICAL >エラー > 警告 > 情報 > デバッグ > ログ レベルを自分で定義することもできます。

2.logging.basicConfig 関数を使用して、ログの出力形式と方法を設定します。

logging.basicConfig(level=logging.DEBUG,
) line:%(lineno)d] %(levelname)s %(message)s',
datefmt='%a, %d %b %Y %H:%M:%S',
', I filemode =' w ')
Logging.debug (' これはデバッグメッセージです')
logging.info (' これはインコ メッセージです ')
logging.warning (' これは警告メッセージです ') g



./myapp.log ファイルの内容は次のとおりです:
Sun, 2009 年 5 月 24 日21:48:54 Demon2.py[line:11] DEBUG これはデバッグ メッセージです
Sun, 24 May 2009 21:48:54 Demon2.py[line :12] INFO これは情報メッセージです
Sun, 24 May 2009 21: 48:54 Demon2.py[line:13] WARNING これは警告メッセージです


logging.basicConfig 関数のパラメータ:
filename: ログ ファイル名を指定します
filemode: これは file 関数と同じ意味を持ち、ログ ファイルのオープン モード、'w' または 'a'

形式を指定します。 出力の形式と内容を指定します。 format は、上の例に示すように、多くの有用な情報を出力できます。

%(levelno)s: ログ レベルの値を出力します。
%(levelname)s: ログ レベル名を出力します
%(pathname)s: 現在実行中のプログラムのパス (実際には sys.argv[0]
%(filename)s) を出力します。 現在実行中のプログラム名を出力します
%(funcName)s: ログの現在の関数を出力します
%(lineno)d: ログの現在の行番号を出力します
%(asctime)s: ログを出力する時間
%(thread)d: スレッドIDを出力
%(threadName)s: スレッド名を出力
%(PROcess)d: プロセスIDを出力
%(message)s: ログ情報を出力します
datefmt: time.strftime() と同じ時間形式を指定します
level: ログ レベルを設定します。デフォルトはlogging.WARNING
stream: ログの出力ストリームを指定します。出力先を sys.stderr、sys.stdout、またはファイルに指定できます。ストリームとファイル名を同時に指定すると、ストリームは無視されます。 3. ログをファイルとファイルに同時に出力します

importlogging

logging.basicConfig(level=logging.DEBUG,

format='%(asctime)s %(filename)s[line:%] (lineno)d] %(levelname)s %(message)s ',

datefmt='%a, %d %b %Y %H:%M:%S',

filename='myapp.log',

filemode='w')######### ################################### ############# ##################################### #StreamHandler を INFO レベル以上に定義します ログ情報は標準エラーに出力され、現在のログ処理オブジェクトに追加されます #console =logging.StreamHandler()
console.setLevel(logging.INFO)
formatter =logging.Formatter('% (名前)-12s: % (レベル名)-8s %(メッセージ)s')
console.setFormatter(フォーマッタ)
logging.getLogger('').addHandler(コンソール)######### ####### ########################################### ##### ###########################


logging.debug('これはデバッグ メッセージです')
logging.info ('これは情報メッセージです')
logging.warning('これは警告メッセージです')

画面に印刷:
root : INFO これは情報メッセージです
root : WARNING これは警告メッセージです

./myapp.ログ ファイルの内容は次のとおりです:
Sun, 24 May 2009 21:48:54 Demon2.py[line:11] DEBUG これはデバッグ メッセージです
Sun, 24 May 2009 21:48:54 Demon2.py[line:12] INFOこれは情報メッセージです
Sun, 24 May 2009 21:48:54 Demon2.py[line:13] WARNING これは警告メッセージです


4.logging log rollback

importloggingfromlogging.handlers import RotatingFileHandler######################################## ## ############################################## #### ##RotatingFileHandler を定義して、最大 5 つのログ ファイルをバックアップします。各ログ ファイルの最大数は 10MRthandler = RotatingFileHandler('myapp.log', maxBytes=10*1024*1024,backupCount=5)
Rthandler.setLevel(logging . INFO)
formatter =logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
Rthandler.setFormatter(formatter)
logging.getLogger('').addHandler(Rthandler ) ############################################# ### ##########################################

からわかるように、上記の例とこの例では、logging にはログ処理のためのメイン オブジェクトがあり、その他の処理メソッドは addHandler によって追加されます。
ロギングのためのいくつかのハンドル メソッドは次のとおりです:

logging.StreamHandler: ログはストリームに出力され、sys.stderr、sys.stdout、またはファイルに出力されます。logging.FileHandler: ログはファイルに出力されます。実際の使用では、RotatingFileHandler と TimedRotatingFileHandler が使用されます。 logging.handlers.BaseRotatingHandlerlogging.handlers.RotatingFileHandler logging.handlers.TimedRotatingFileHandler

logging.handlers.SocketHandler: リモートでログを TCP/ip ソケットに出力します

logging.handlers.DatagramHandler: UDP ソケットへのリモート出力ログ

logging.handlers.SMTPHandler: リモートからメールアドレスにログを出力します

logging.handlers.SysLogHandler: syslog

logging.handlers.NTEventLogHandler へのログ出力: Windows NT/2000/XP のイベント ログにログをリモート出力します

logging.handlers.MemoryHandler: ログはメモリ内の指定されたバッファに出力されます

logging.handlers.HTTPHandler: 「GET」または「POST」による HTTP サーバーへのリモート出力

StreamHandler と FileHandler は一般的に使用されるログ処理メソッドであるため、これらはログ モジュールに直接含まれていますが、他のメソッドはlogging.handlers モジュールに含まれています。上記その他の処理方法についてはpython2.5のマニュアルを参照してください!

5.logging.config モジュールを使用してログを設定します

#logger.conf

########################### ############### [ロガー]

keys=root,example01,example02

[logger_root]
level=DEBUG
handlers=hand01,hand02

[logger_example01]
handlers= hand01 ,hand02
qualname=example01
propagate=0

[logger_example02]
handlers=hand01,hand03
qualname=example02
propagate=0
################ # ######################## [ハンドラー]
keys=hand01,hand02,hand03

[handler_hand01]


class=StreamHandler
レベル=INFO

formatter=form02

args=(sys.stderr,)

[handler_hand02]class=FileHandler
level=DEBUG
formatter=form01
args=('myapp.log', 'a')

[ handler_hand03] class=handlers.RotatingFileHandler
level=INFO
formatter=form02
args=('myapp.log', 'a', 10*1024*1024, 5)
############ ## ############################### [フォーマッタ]
keys=form01,form02

[formatter_form01]
format=%( asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s
datefmt=%a, %d %b %Y %H:%M:% S

[ formatter_form02]
format=%(name)-12s: %(levelname)-8s %(message)s
datefmt=
importloggingimportlogging.config

logging.config.fileConfig("logger.conf")
logger = ロギング.getLogger("example01")

logger.debug('これはデバッグメッセージです')
logger.info('これは情報メッセージです')
logger.warning('これは警告メッセージです')
importloggingimportlogging.config

logging.config.fileConfig("logger.conf")
logger =logging.getLogger("example02")

logger.debug('これはデバッグメッセージです')
logger.info('これは情報メッセージです')
logger.warning('This is warning message')


6. ロギングはスレッドセーフです

上記は、Python モジュールでのロギングの学習の内容です。その他の関連記事については、PHP 中国語 Web サイトを参照してください。 (www.php .cn)!

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。