logger was developed to enable toggleable logging in your Go program via a simple bool flag. The package just wraps the standard log package provided by Go.
1 - add "github.com/cqhudson/logger" to your package imports list
2 - instantiate a new logger variable with logger.NewLogger(enablePrint, enablePanic, enableFatal), passing in true or false to enable or disable different logging types.
package main
import (
"github.com/cqhudson/logger"
)
func main() {
// Instantiate a new logger using NewLogger(enablePrint, enablePanic, enableFatal)
l := logger.NewLogger(true, false, true)
// Set a prefix
const prefix string = "[main function]"
l.SetPrefix(prefix)
// Set some flags
l.SetFlags(logger.Lshortfile | logger.Ltime | logger.Lmicroseconds | logger.Lmsgprefix)
// log.Print
l.Print("This is a test of Print")
// log.Printf
s := "Printf"
l.Printf("This is a test of %s", s)
// log.Println
l.Println("This is a test of Println")
// log.Panic
l.Panic("This is a test of Panic")
// log.Panicf
s = "Panicf"
l.Panicf("This is a test of %s", s)
// log.Panicln
l.Panicln("This is a test of Panicln")
// log.Fatal
l.Fatal("This is a test of Fatal")
// log.Fatalf
s = "Fatalf"
l.Fatalf("This is a test of %s", s)
// log.Fatalln
l.Fatalln("This is a test of Fatalln")
}logger can be toggled using a boolean value. This allows for a cleaner codebase with less code duplication, with an easy way to toggle it on or off.
Logging with Go's log package:
shouldLog := true
if shouldLog == true {
log.Print("About to do something")
}
...
do something
do something
do something
...
if shouldLog == true {
log.Print("Finished doing something")
}Logging with logger:
logPrints := true
logPanics := false
logFatals := false
l := logger.NewLogger(logPrints, logPanics, logFatals)
l.Print("About to do something")
...
do something
do something
do something
...
l.Print("Finished doing something")