1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的備忘録:なぜログを残さないと詰むのか? エラーログの重要性と実践例(Go、Python、JavaScript)

Posted at

はじめに

システム開発や運用において、エラーログはかなり重要な役割を持っています。

特に、トラブルが発生したときに原因を素早く特定できるかどうかは、ログの管理次第といっても過言ではありません。

この記事では、エラーログの重要性を整理しつつ、Go、Python、JavaScript それぞれでのログの出力方法を紹介します。

書こうと思ったきっかけ

IT スクールでの学習やハッカソンの経験を通じて、「ちゃんとログを残しておけばもっとスムーズに解決できたのに…!」と思う場面が何度かありました。

エラーログがなかったせいで、どこで何が起きたのか分からず、チーム全員で手探り状態になることも。

実際の開発現場でも、ログをうまく活用できるかどうかで、トラブル対応のスピードやシステムの安定性が大きく変わると学びました。

そんな経験から、「ちゃんとしたログの出力方法を押さえておこう!」と思い、この記事を書いてみました。

エラーログの重要性

システム開発や運用において、エラーログの出力は非常に重要な役割を果たします。適切なログ管理を行うことで、以下のようなメリットがあります。

  1. デバッグの容易化:エラー発生時にログを確認することで、問題の原因を特定しやすくなります。
  2. 障害対応の迅速化:システム障害が発生した際、ログを活用して素早く対処できます。
  3. セキュリティ対策:異常なアクセスや攻撃の兆候をログから検知できます。
  4. システムの保守性向上:運用中の問題やパフォーマンスのボトルネックを把握し、改善につなげられます。

各言語でのログの出力方法

Goでのログ出力

Goでは標準の log パッケージを使用してログを出力できます。

package main

import (
    "log"
    "os"
)

func main() {
    file, err := os.OpenFile("app.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0666)
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close()
    log.SetOutput(file)

    log.Println("通常のログメッセージ")
    log.Printf("エラー: %s", "サーバーが応答しません")
    log.Fatal("致命的なエラー: システム停止")
}

実際のコマンド結果

Screenshot 2025-02-17 at 3.47.44.png

Pythonでのログ出力

Pythonでは logging モジュールを使用します。

import logging

logging.basicConfig(
    filename='app.log',
    level=logging.DEBUG,
    format='%(asctime)s - %(levelname)s - %(message)s'
)

logging.debug("デバッグ用のログ")
logging.info("情報レベルのログ")
logging.warning("警告: データが見つかりません")
logging.error("エラー: ファイルが開けません")
logging.critical("致命的なエラー: システムダウン")

実際のコマンド結果

Screenshot 2025-02-17 at 3.49.36.png

JavaScript (Node.js) でのログ出力

Node.js では console を使ったログ出力や、winston などのライブラリを使用できます。

console を使用する場合

console.log("情報: アプリケーションが起動しました");
console.warn("警告: メモリ使用量が高いです");
console.error("エラー: データベース接続に失敗しました");

実際のコマンド結果

Screenshot 2025-02-17 at 3.52.30.png

まとめ

適切なエラーログの管理は、システムの安定性と保守性を高める上で不可欠です。Go、Python、JavaScript それぞれの言語で適切な方法でログを出力し、効果的に活用することが重要です。特に、

  • ログレベルを適切に設定する
  • ログファイルを定期的にローテーションする
  • 監視ツールと連携させる

といった工夫をすることで、より良い運用が可能になるかと思います!

1
0
1

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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?