見出し画像

DS職の副専攻シリーズ Python編 #1: デコレータでログ出力をスマートに行うアイディア

#テクノロジー #programming #python #decorator #logging  #DS職の副専攻シリーズ

この記事では,Pythonのデコレータを使った,スマートなログ出力のアイディアについて解説します.

シンプルなデコレータ @observe を実装して,任意のクラスの開始時刻と終了時刻をログとして出力します.既存の実装にはほとんど手を加える必要はありません.

こんなログ出力は嫌だ!

最近では幅広い分野の方が日常の業務でプログラミングを用いるようになりました.日頃データサイエンティストとして業務を行う方の中には,Python以外の言語の経験が無いという方も珍しくなく,特にPythonのログ出力のように意見が別れる部分では,各自独自の工夫を凝らしたユニークな方法のログ出力が見受けられます.そのユニークな方法の数々には以下のようなものがあります.

意気込みがめっちゃ伝わる

def hoge(self):
    logger.info("いまからhoge処理をはじめます")

わかるよ...続けてくれたまえ.

フォーマットが独自でparseできない

def hoge(self):
    ...
    logger.info("実行時間は {0} 秒でした".format(t))

そのログは人間が読むのか・・・?

print関数マン

def hoge(self):
   ...
   print("ここでhoge処理を開始します")

その出力,誰がどこで拾うの?

上記で紹介したような事例はどうやら合理的とは言えなさそうです.ではどうしたらいいの?ということで今回は私なりのベストプラクティスをご紹介したいと思います.

プロジェクトの構成

ここから先は

6,207字 / 1画像 / 1ファイル

¥ 200

この記事が気に入ったらサポートをしてみませんか?