【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")
}

以上です