ginフレームワークでログを出力する方法【Go言語】

はじめに

ginフレームワークの導入方法やその他のフレームワークの紹介は下記で記事にしています

Ginを使ってみる(インストールからHelloWorld表示まで)【Go言語】

Ginを使ってみる(インストールからHelloWorld表示まで)【Go言語】
Ginとは Ginは、Go言語を使ったWebフレームワークです。 Go言語のフレームワークは、下記のようなものがWebフレームワークとして知られてますが Gin(ジン) Echo(エコー) iris(アイリス) Revel(レヴェル) Be...

Go言語でのログ出力: ベストパフォーマンスを出すためのパッケージ比較

Go言語でのログ出力: ベストパフォーマンスを出すためのパッケージ比較
はじめに ログはソフトウェア開発の重要な一部であり、エラーのトラブルシューティングからシステムのパフォーマンスモニタリングまで、様々な目的に使われます。Go言語には、組み込みのログパッケージが存在しますが、より高度な機能を求める場合は、サー...

ログを出力する

 f, _ := os.Create("出力するログファイルパス")
    gin.DefaultWriter = io.MultiWriter(f)

os.Createで出力用ファイルを指定します。

gin.DefaultWriter = io.MultiWriter(f)でfに指定された出力ファイルにログを出力します。

この設定をすることでファイルにログが出力されます。
コンソールに出力する場合は、
gin.DefaultWriter = io.MultiWriter(os.Stdout, f)とするとコンソール、ファイルにそれぞれ出力します。

ログ出力のサンプル

サンプルソース

・main.go

package main

import (
	"github.com/gin-gonic/gin"
	"io"
	"os"
)

func main() {
	f, _ := os.Create("gin.log")
	gin.DefaultWriter = io.MultiWriter(os.Stdout, f)

	router := gin.Default()
	router.GET("/ping", func(c *gin.Context) {
		c.String(200, "pong")
	})
}

gin.logにログを出力するよう設定して、コンソールトファイルそれぞれにログを出力します。

出力されるログ

・gin.log

[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.

[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:	export GIN_MODE=release
 - using code:	gin.SetMode(gin.ReleaseMode)

[GIN-debug] GET    /ping                     --> main.main.func1 (3 handlers)
[GIN-debug] Listening and serving HTTP on :8080

ログが出力されました。

・参照
https://github.com/gin-gonic/gin#how-to-write-log-file