【Go】Echo アプリログ出力処理(複数ファイルへ)
実際使おうとすると調べる内容が細かい。。けどメモ。
logrusというのを使ってみる。ローテションはとりあえず考えない。
log/log.go
package log
import (
"os"
"fmt"
"github.com/Sirupsen/logrus"
)
var AppLog = logrus.New()
var AppLog2 = logrus.New()
func init() {
// Log1
file, err := os.OpenFile("app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
panic(fmt.Sprintf("[Error]: %s", err))
}
AppLog.Out = file
AppLog.Formatter = &logrus.JSONFormatter{}
// Log2
file, err := os.OpenFile("app2.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
panic(fmt.Sprintf("[Error]: %s", err))
}
AppLog2.Out = file
AppLog2.Formatter = &logrus.JSONFormatter{}
}main.go
package main
import (
"app/log"
"github.com/labstack/echo"
)
func main() {
e := echo.New()
log.AppLog.Info("Log1 Output")
log.AppLog2.Info("Log2 Output")
e.Start(":8080")
}以上です