Skip to content

Instantly share code, notes, and snippets.

@yongzhy
Created February 17, 2014 05:16
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yongzhy/9045121 to your computer and use it in GitHub Desktop.
Save yongzhy/9045121 to your computer and use it in GitHub Desktop.
golang logging with different level and output to different file
// from http://www.goinggo.net/2013/11/using-log-package-in-go.html
import (
"io"
"log"
)
var (
_TRACE *log.Logger
_INFO *log.Logger
_WARNING *log.Logger
_ERROR *log.Logger
)
func initLog(
traceHandle io.Writer,
infoHandle io.Writer,
warningHandle io.Writer,
errorHandle io.Writer) {
_TRACE = log.New(traceHandle,
"TRACE: ",
log.Ldate|log.Ltime|log.Lshortfile)
_INFO = log.New(infoHandle,
"INFO: ",
log.Ldate|log.Ltime|log.Lshortfile)
_WARNING = log.New(warningHandle,
"WARNING: ",
log.Ldate|log.Ltime|log.Lshortfile)
_ERROR = log.New(errorHandle,
"ERROR: ",
log.Ldate|log.Ltime|log.Lshortfile)
}
func init() {
logfile, err := os.Create("/tmp/goag.log")
if err != nil {
log.Fatalln("Fail to open log file")
}
initLog(ioutil.Discard, logfile, logfile, logfile)
//initLog(ioutil.Discard, os.Stdout, os.Stdout, os.Stderr)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment