mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-06-23 20:50:45 +08:00
This change was made with the following commands
go mod init
go mod tidy
go mod vendor -v
Revision of github.com/op/go-logging changed because
github.com/anacrolix/torrent requires the current version in its go.mod
# github.com/op/go-logging
yunion.io/x/onecloud/cmd/torrent
github.com/anacrolix/torrent
github.com/elgatito/upnp
github.com/op/go-logging
Content of google.golang.org/grpc changed and it's indeed the case after
checking with the upstream repo. It's very likely that the old content
is wrong.
Some packages like golang.org/x/sys/unix are added because they are
indeeded needed
Some packages are removed as a whole because they are needed anymore
Golang logging library
Package logging implements a logging infrastructure for Go. Its output format is customizable and supports different logging backends like syslog, file and memory. Multiple backends can be utilized with different log levels per backend and logger.
NOTE: backwards compatibility promise have been dropped for master. Please
vendor this package or use gopkg.in/op/go-logging.v1 for previous version. See
changelog for details.
Example
Let's have a look at an example which demonstrates most of the features found in this library.
package main
import (
"os"
"github.com/op/go-logging"
)
var log = logging.MustGetLogger("example")
// Example format string. Everything except the message has a custom color
// which is dependent on the log level. Many fields have a custom output
// formatting too, eg. the time returns the hour down to the milli second.
var format = logging.MustStringFormatter(
`%{color}%{time:15:04:05.000} %{shortfunc} ▶ %{level:.4s} %{id:03x}%{color:reset} %{message}`,
)
// Password is just an example type implementing the Redactor interface. Any
// time this is logged, the Redacted() function will be called.
type Password string
func (p Password) Redacted() interface{} {
return logging.Redact(string(p))
}
func main() {
// For demo purposes, create two backend for os.Stderr.
backend1 := logging.NewLogBackend(os.Stderr, "", 0)
backend2 := logging.NewLogBackend(os.Stderr, "", 0)
// For messages written to backend2 we want to add some additional
// information to the output, including the used log level and the name of
// the function.
backend2Formatter := logging.NewBackendFormatter(backend2, format)
// Only errors and more severe messages should be sent to backend1
backend1Leveled := logging.AddModuleLevel(backend1)
backend1Leveled.SetLevel(logging.ERROR, "")
// Set the backends to be used.
logging.SetBackend(backend1Leveled, backend2Formatter)
log.Debugf("debug %s", Password("secret"))
log.Info("info")
log.Notice("notice")
log.Warning("warning")
log.Error("err")
log.Critical("crit")
}
Installing
Using go get
$ go get github.com/op/go-logging
After this command go-logging is ready to use. Its source will be in:
$GOPATH/src/pkg/github.com/op/go-logging
You can use go get -u to update the package.
Documentation
For docs, see http://godoc.org/github.com/op/go-logging or run:
$ godoc github.com/op/go-logging
Additional resources
- wslog -- exposes log messages through a WebSocket.
