Go でシステム開発を行う際、欠かせないのが「ログ出力」です。
ログは、エラー調査・障害対応・運用監視など、実務開発で非常に重要な役割を持っています。
本記事では、Goでのログ出力方法を「基本・ファイル出力・実務で使えるログ設計」まで初心者向けに解説します。
ログとは?
ログとは👇
👉 システムの動作記録
なぜログが重要なのか?
例えば👇
- エラー原因調査
- API監視
- 不正アクセス確認
- バッチ実行確認
👉 実務では必須
Go標準のlogパッケージ
import "log"
基本のログ出力
log.Println("アプリ起動")
エラーログ
log.Println("DB接続失敗")
Fatalログ
log.Fatal(err)
👉 ログ出力後に終了
Panicログ
log.Panic("重大エラー")
ファイル出力
file, err := os.OpenFile(
"app.log",
os.O_APPEND|os.O_CREATE|os.O_WRONLY,
0666,
)
log.SetOutput(file)
ログフォーマット変更
log.SetFlags(
log.Ldate |
log.Ltime |
log.Lshortfile,
)
JSONログ(実務向け)
{
"level": "INFO",
"message": "login success"
}
Zapで高速ログ
Zap
go get go.uber.org/zap
Zapログ例
logger.Info("ログイン成功")
実務で重要なポイント
✔ ログレベル管理
| レベル | 用途 |
|---|---|
| INFO | 通常 |
| WARN | 警告 |
| ERROR | エラー |
| FATAL | 致命的 |
✔ 個人情報出力禁止
👉 Password禁止
✔ ログローテーション
👉 ファイル肥大化防止
実務での応用
- API監視
- バッチ監視
- エラー分析
- セキュリティ監査
よくある失敗
❌ ログ不足
❌ Password出力
❌ Error詳細不足
ベストプラクティス
- JSONログ化
- Level管理
- File出力
- Error統一
💡 結論
👉
「ログ品質=運用品質」


コメント