🟩Python学習記録#25|ログのレベルを自動で切り替える

Code

はじめに

これまでの学習では、

  • 計算結果を dict にまとめる
  • ログ出力を関数にして再利用する

といった形で、
「ログをきれいに出す仕組み」 を作ってきました。

今回は一歩進めて、

ログのレベル(OK / WARN / ERROR)を
数値から自動で切り替える

ことをテーマに学習します。

人が判断していた部分を
コードに任せる練習 です。


今回のゴール

今回の学習ゴールは以下です。

  • 平均値(avg)を条件で判定する
  • 条件に応じてログレベルを決める
  • stats['level'] を自動で更新する
  • 既存のログ出力関数と組み合わせて使う

👉 「判断をコードにする」感覚をつかむこと が目的です。


使用するデータ

今回も、これまで使ってきた stats を利用します。

stats = {
    'count': 20,
    'sum': 980,
    'avg': 49,
    'level': 'WARN'
}

最初は level を仮で入れていますが、
最終的には avg の値から自動で決まる ようにします。


ログレベルの判定ルール

今回は次のルールで判定します。

avg の値level
70以上OK
50以上WARN
50未満ERROR

このルールを if / elif / else で表現します。


ログレベルを自動で切り替えるコード

if stats['avg'] >= 70:
    stats['level'] = 'OK'
elif stats['avg'] >= 50:
    stats['level'] = 'WARN'
else:
    stats['level'] = 'ERROR'

ポイント

  • stats['avg'] の値を条件に使う
  • 条件に合った level を代入する
  • 人が判断せず、コードが決める

ログ出力関数と組み合わせる

前回作成したログ出力関数と組み合わせます。

def log_stats(stats):
    message = f"[{stats['level']}]"
    for key, value in stats.items():
        if key != 'level':
            message += f" {key}={value}"
    print(message)

判定後に関数を呼び出します。

log_stats(stats)

出力例

[WARN] count=20 sum=980 avg=49

avg の値に応じて、
ログレベルが自動で切り替わっていることが分かります。


なぜ「自動で切り替える」のか

この仕組みを作ることで、

  • 毎回レベルを手で決めなくていい
  • 判断基準がコードに残る
  • 同じルールで何度でも使える

というメリットがあります。

👉 「人が考える → コードが判断する」
これがプログラミングの大きな価値です。


今回の学び

  • if 文で条件をコードに落とし込める
  • 数値から状態(レベル)を決められる
  • dict の値を書き換えることで状態管理ができる
  • ログ出力がより実務っぽくなった

次回に向けて

次回は、

  • 判定処理も関数にまとめる
  • 複数データに使える形にする
  • ログ設計をさらに整理する

などに進めそうです。


まとめ

  • ログの「形」は関数で統一
  • ログの「意味」は条件で自動判定
  • 判断をコードに任せることで再利用性が上がる

少しずつですが、
実務で使われる考え方に近づいてきました。

コメント

タイトルとURLをコピーしました