The colorful and simple logging library for Golang.
Opinionated logging library that able to output to io.Reader
with file descriptors (os.Stdout
, os.Stderr
,
regular file, etc.) with automatic terminal color support.
The log serverity and behavior can be described as follows:
Severity | Description | Caller Info |
---|---|---|
Fatal | Unrecoverable error and automatically exit after logging | Yes |
Error | Recoverable error but need attention | Yes |
Warn | Minor error and does not output the caller info | No |
Info | Informational message | No |
Debug | Debug message, only shown when debug enabled | Yes |
Trace | Trace message, only shown when debug enabled | No |
Add the go-log
package using
go get github.com/withmandala/go-log
And import it to your package by
import (
"github.com/rish1988/go-log"
)
Use the go-log
package with
logger := log.New(os.Stderr)
logger.Info("Hi, this is your logger")
Write to a log
file
f, err := os.Create("app.log")
if err != nil {
fmt.Println(err)
return
}
logger := log.New(f)
The library will try to automatically detect the io.Reader
file descriptor when calling log.New()
for color
support. But, if you insist to use or not to use color, you can add .WithColor()
or .WithoutColor()
respectively.
// With color
logger := log.New(os.Stderr).WithColor()
// Without color
logger := log.New(os.Stderr).WithoutColor()
The log library will suppress the .Debug()
and .Trace()
output by default. To enable or disable the debug output,
call (Logger).WithDebug()
or (Logger).WithoutDebug()
respectively.
// Enable debugging
logger := log.New(os.Stderr).WithDebug()
// Print debug output
logger.Debug("Test debug output")
// Disable debug output
logger.WithoutDebug()
logger.Debug("Test debug output") // This message will not be printed
If somehow the log is annoying to you, just shush it by calling (Logger).Quiet()
and ALL log output will be
disappear, although .Fatal()
will silently quit the program with error. To re-enable the log output use
(Logger).NoQuiet()
.