logo alternatives and similar packages
Based on the "Logging" category.
Alternatively, view logo alternatives based on common mentions on social networks and blogs.
Do you think we are missing an alternative of logo or a related project?
A simple logging library for golang.
I wanted to have a logger that is easy configurable with various
io.Writers and a simple active and color on / off switch, so I created it.
Logger object can hold multiple
Receiver holds an
io.Writer object (f.e.
Level which is minimal the log level that is logged, a boolean
Active which says if the
Receiver should log or not, and a boolean
Color which prints output colored if turned on. Every
Receiver has also its own log format.
First you have to install the package.
go get -u github.com/mbndr/logo
After that you can import it.
It's possible to create a simple logger with a
io.Writer, the log level and a color boolean as parameter.
// Create a simple cli logger with activated colors which logs everything log := logo.NewSimpleLogger(os.Stderr, logo.DEBUG, "prefix ", true)
You can create multiple
Receivers and add it to a new
// Receiver for the terminal which logs everything cliRec := logo.NewReceiver(os.Stderr, "prefix ") cliRec.Color = true cliRec.Level = logo.DEBUG // Helper function to get a os.File with the correct options logFile, _ := logo.Open("./example/logo.log") // Receiver for the log file // This will log with level INFO (default) and have no colors activated // Also the log format is simpler (f.e. ERRO: Message) fileRec := logo.NewReceiver(logFile, "prefix ") fileRec.Format = "%s: %s" // Create the logger log := logo.NewLogger(cliRec, fileRec)
If you created you
logo.Logger object, there are a few methods you can use to log.
// Methods which write like log.Println() log.Debug("First debug", " and another string to log") log.Info("Information") log.Warn("Warning", " message") log.Error("Error message") log.Fatal("Fatal error", " because of something") // Methods which write like log.Printf() log.Debugf("Debug value %d", 16) log.Infof("Listening on port %d", 8080) log.Warnf("Invalid user %s", user.Name) log.Errorf("Couldn't load config file: %s", path) log.Fatalf("Fatal error: %s", err.Error()) // Disable the logger log.Active = false
There are a few unit tests written for this library. To run them
cd into the project directory and run this.
go test -v
*Note that all licence references and agreements mentioned in the logo README section above are relevant to that project's source code only.