golangでのアプリケーションログを考える
golangでアプリケーションを作成中にfmt.Printfをそのままにしてしまったため、大量に修正を加えることになってしまったので、今後どうするか考えてみます。
ログの出力を制御する
まず、パラメータによる制御をいれて出力を切り替えれるようにしておきたいです。
fmtパッケージでは、出力部分の切り替えがなかったため、logパッケージへ切り替えをしました。
func main(){ log.SetOutput(os.Stdout) }
func main(){ file, err := os.OpenFile("application.log", os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0664) log.SetOutput(file) }
type NoneWriter struct{} func (c NoneWriter) Write(p []byte) (n int, err error) { return 0, nil } func main(){ logWriter := NoneWriter{} log.SetOutput(logWriter) }
log.SetOutputはio.Writerのため、Write関数を定義することでカスタマイズできます。
loggerのライブラリを探す
探す前に実装したので、ライブラリを使用してないです。参考にしてみたいloggerを載せておきます。
気になるからあとでみておこう。と思ったものです。