commit | 39b5b750090d2a17b611014eb2b85032af4ed1d1 | [log] [tgz] |
---|---|---|
author | Örjan Persson <o@42mm.org> | Sat Jun 28 14:25:16 2014 |
committer | Örjan Persson <o@42mm.org> | Sat Jun 28 14:31:54 2014 |
tree | 0944691c716870c5138122d3dd753cb90382aea6 | |
parent | 883aa046296840e81fc8ef21fb62f34094f03e83 [diff] |
Updated contributors file
Package logging implements a logging infrastructure for Go. It supports different logging backends like syslog, file and memory. Multiple backends can be utilized with different log levels per backend and logger.
$ go get github.com/op/go-logging
After this command go-logging is ready to use. Its source will be in:
$GOROOT/src/pkg/github.com/op/go-logging
You can use go get -u -a
to update all installed packages.
You can find a more detailed example at the end.
package main
import "github.com/op/go-logging"
var log = logging.MustGetLogger("package.example")
func main() {
var format = logging.MustStringFormatter("%{level} %{message}")
logging.SetFormatter(format)
logging.SetLevel(logging.INFO, "package.example")
log.Debug("hello %s", "golang")
log.Info("hello %s", "golang")
}
For docs, see http://godoc.org/github.com/op/go-logging or run:
$ go doc github.com/op/go-logging
package main import ( stdlog "log" "os" "github.com/op/go-logging" ) var log = logging.MustGetLogger("test") type Password string func (p Password) Redacted() interface{} { return logging.Redact(string(p)) } func main() { // Customize the output format logging.SetFormatter(logging.MustStringFormatter("▶ %{level:.1s} 0x%{id:x} %{message}")) // Setup one stdout and one syslog backend. logBackend := logging.NewLogBackend(os.Stderr, "", stdlog.LstdFlags|stdlog.Lshortfile) logBackend.Color = true syslogBackend, err := logging.NewSyslogBackend("") if err != nil { log.Fatal(err) } // Combine them both into one logging backend. logging.SetBackend(logBackend, syslogBackend) // Run one with debug setup for "test" and one with error. for _, level := range []logging.Level{logging.DEBUG, logging.ERROR} { logging.SetLevel(level, "test") log.Critical("crit") log.Error("err") log.Warning("warning") log.Notice("notice") log.Info("info") log.Debug("debug %s", Password("secret")) } }