loggingモジュールの勉強中に、ログに書き込むための文字列フォーマットを
いちいち書くのがめんどくさくなったので、自動で作れないか試してみました。
いちいち書くのがめんどくさくなったので、自動で作れないか試してみました。
Pythonでは、
a = 10 print "%d" % a
と書くことで、変数の内容を表示するとこができます。
また、
dic = {"name" : "hayashi"}
という辞書があったときに
print "%(name)s" % dic
このように、カッコの中にキーを書くと、対応する値を表示できます。
この辞書のキーに対応した値を入れられる機能を使って、文字列フォーマットを 作ってみました。
用意するもの
辞書のキーリスト key_list = ['name', 'age', 'tall']
辞書の値のリスト val_list = ['neko', 3, 25]
上の二つのリストは、フォーマットに並べたい順番に入れてください
空の文字列 fmt = ""
loggingモジュール import logging
使う関数
dict() : 辞書作成に使います。
zip() : 二つのリストから、一つの辞書を作成するために使います。
logging.warning() : コンソールに書きだして確認してみます。
WARNING:root:neko 3 25 と表示されれば成功です。
文字として'%'を使いたいときには2つ重ねる必要があるのでご注意下さい。
また、すでに作った辞書からも作ることができます。
順番が指定できないので、フォーマットを作るときに
fmt += "%s = %%(%s)s " % (key, key)
とすれば、 キー = 対応した値 の形でログ出力ができて確認しやすくなります。
複雑なフォーマットを作ることには向いていませんが、即席のログを作るときなどにいかがでしょうか。
a = 10 print "%d" % a
と書くことで、変数の内容を表示するとこができます。
また、
dic = {"name" : "hayashi"}
という辞書があったときに
print "%(name)s" % dic
このように、カッコの中にキーを書くと、対応する値を表示できます。
この辞書のキーに対応した値を入れられる機能を使って、文字列フォーマットを 作ってみました。
用意するもの
辞書のキーリスト key_list = ['name', 'age', 'tall']
辞書の値のリスト val_list = ['neko', 3, 25]
上の二つのリストは、フォーマットに並べたい順番に入れてください
空の文字列 fmt = ""
loggingモジュール import logging
使う関数
dict() : 辞書作成に使います。
zip() : 二つのリストから、一つの辞書を作成するために使います。
logging.warning() : コンソールに書きだして確認してみます。
import logging key_list = ['name', 'age', 'tall'] val_list = ['neko', 3, 25] fmt = "" # 辞書作成 mydic = dict(zip(key_list, val_list)) # 文字列フォーマット作成 for key in key_list: fmt += "%%(%s)s " % key # コンソールに表示してみる logging.warning(fmt % mydic)
WARNING:root:neko 3 25 と表示されれば成功です。
文字として'%'を使いたいときには2つ重ねる必要があるのでご注意下さい。
また、すでに作った辞書からも作ることができます。
順番が指定できないので、フォーマットを作るときに
fmt += "%s = %%(%s)s " % (key, key)
とすれば、 キー = 対応した値 の形でログ出力ができて確認しやすくなります。
複雑なフォーマットを作ることには向いていませんが、即席のログを作るときなどにいかがでしょうか。
Leave a comment