水. 12月 4th, 2024

スキルシェアリング.info

さまざまな問題にITスキルで立ち向かうITソリューションブログ

【Python】ロギングをRPGっぽく扱ってみた【ネタ】

はじめに

どうもMizokeiです。
プログラミングをしていると、プログラムにさまざまな思いをのせて書く人もいるようです。クラスやメソッドなどを人に見立てて書いてみたり、ストーリー仕立てに書いてみたり・・・。

おおよそネタな話ですが、今日はPythonの標準ライブラリにあるロギングを使って、RPG風なクラスを作ってみました。プログラム自体が英語のようなものなので、書き方によっては、文ぽくも書けそうですよね。

魔法使いが呪文を唱えるように、ログを出力させてみるのも一興です。さて、実行環境です。

実行環境

  • Windows10 64bit
  • Python 3.7

ロギング機能を使いました

今回は、以下のロギング機能を使用しました。リンク先のバージョンはPython 3.7ですが、ご自身の環境に合わせてご確認くださいませ。

ロギングクラスをimport

ロギング機能を使用するには、以下のimport文を挿入します。

標準ライブラリのため、すでにインストールされていると思いますが、実行時に見つからない、エラーとなる際には、インストールしているバージョンをご確認のうえ、pythonそのものの再インストールをお試しください。

「調査者」と名付けてみる

さて、本題です。RPG風とはいえ、流石にロギングに魔法使いはなにか違う感じがします。今回は、ログを調査して出力してくれる、という意味で、調査者と名付けてみました。

なので、クラス名は、Investigator(=「調査者」)です。

コンストラクタの定義

次にコンストラクタですね。ネタ記事なので、ロギングそのものの説明は割愛します。

ロギングレベルごとのメソッド

ロギングのレベルごとにそれぞれのメソッドを用意しますね。ここで、「調査者は○○を唱えた!」風に使って見たいと思います。←結局魔法使い扱いやんけ

ロギングレベルは以下の6つですが、最後のNOTSETは無視して、5つほど作ってみます。

レベル数値
CRITICAL 50
ERROR 40
WARNING 30
INFO 20
DEBUG 10
NOTSET 0

pydoc風記載のため少し長いですが、メソッドそのものは1行です。

使ってみる

調査者クラスInvestigatorのインスタンスを作ります。引数に名前を付けることができるのでそのまま「investigator」で入れました。

以下のメソッドで呼出します。今回は、ロギングレベルはINFOです。

investigator.recite_information_messageメソッドで実行していますが、investigator recite information messageとそのまま英語になっていますね!←まあそれを意図したんですが

Google翻訳さんに渡すと・・・

あら。日本語→英語で詠唱します、唱えますでGoogle翻訳さんから使いましたが、英語→日本語で暗唱しますになっちゃいましたね笑。

まあ、そのあたりはご愛嬌で。

ログ出力を確認してみる・・・

ログもちゃんと出ています。名付けた「investigator 」も出力されていますね。いい感じです。

ソースコード全文

さて、今回作ったpythonコードの全文です。

プログラムを書きつつ、一つのストーリーを作ってみるのも面白いかもしれませんね。

この記事が誰かの参考になれば幸いです。それでは、また。