LoginSignup
3
0

【基本】アプリケーション動作ログについて

Last updated at Posted at 2024-06-17

対象者

  • 未経験からエンジニアを目指したい!と考えている方
  • 経験の浅いエンジニアの方

はじめに

こんにちは。
株式会社メディアテックの和田です。

先日開発チームでログに関する勉強会を行いました。
そこで考えたこと・発見について記載します。

前提

  • Webアプリケーション開発を行うチームです
  • 発足して2年足らずの比較的若いチームです

開発チームの現状は?

  • ログの種類って何があるの?
  • 障害発生時に追いかけるのが大変、欲しい情報がない!

ログのベストプラクティスを読んでみた!

  • Heroku
  • OWASP
    時間の都合上OWASPのセキュリティ視点のログは読み切れなかった…
    ので、この記事はHerokuの「アプリケーションログ」について議論した内容が中心です。

正しいログレベルについて

レベル 内容
INFO 障害やエラーを表示しない情報メッセージ
WARN 潜在的な問題があるが、ユーザーエクスペリエンスに影響しないことを示す
ERROR ユーザーエクスペリエンスにいくらか影響する重大な問題であることを示す
FATAL ユーザーエクスペリエンスに大きく影響する致命的なエラーであることを示す
DEBUG アプリの開発者を対象としてデバッグに使用される

ログ出力が必須である場合

  • アプリケーションエラー
  • 入力および出力の検証の失敗
  • 認証の成功と失敗
  • 承認の失敗
  • セッション管理の失敗
  • 特権の昇格の成功と失敗
  • その他のリスクの高いイベント (データのインポートやエクスポートなど)
  • ログ記録の初期化
  • オプトイン (サービス利用規約など)

ログ出力の検討が必要な場合

  • トラブルシューティング
  • 監視とパフォーマンスの向上
  • テスト
  • ユーザー行動の理解
  • セキュリティと監査

前職での経験を持ち寄ってみた

  • ERRORをログを必要以上に出しすぎて怒られたことがある
  • FATAlログを使ったことがある(DB周り)が、そもそもFATALログを使用するような実装をすべきではないのでは?
  • IF文を使用してDEBUGログが開発環境のみ出るようにしていた

今後のログとの付き合い方

  • サーバーアクションの実行時間が延びることを考慮して、検知するためにWARNログを出してもよさそう
  • ログ集計ツールの導入もありかも。現状はExcelに出力して必要なときだけ見ている。
  • 障害発生時に必要な情報は都度考慮が必要なので、開発時にログ設計のプロセスを追加してみる(試運転中…)

参考文献

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0