Log-go is a logging library developed with simplicity and thread-safety in mind. It doesn't support any extra-fancy features. Just like Go itself.
If you wish to improve upon this, you are welcome to send me a Pull Request.
- Different log levels like Fatal, Error, Info, etc.
- Configurable buffered writer (
os.Stdout
,*File
, etc.) - Thread safety
- Prefixes to separate logs from everything else
- Extremely simple setup
- Optionally coloured terminal output
- Well-tested
This library comes with the following log levels:
- Panic
- Fatal
- Error
- Warn
- Info
- Debug
These are enumerated as LevelDebug
, LevelInfo
, etc., so that you won't have
to memorise them by numbers.
Each Log
instance has five methods that are named precisely after the levels.
As well as their formatted counterparts Debugf
, Infof
, Errorf
, etc.
Use them like so:
logger := log.Default()
logger.Warn("this is a warning")
logger.Infof("this is an information message #%d", 42)
package main
import (
"os"
"github.com/sharpvik/log-go"
)
func init() {
// Change log level.
log.SetLevel(log.LevelInfo) // default: LevelError
// Change log writer.
file, _ := os.Create("server.log")
log.SetWriter(file) // default: os.Stdout
}
func main() {
// Computations ...
x := 40 + 2
// Print log with priority level Info.
log.Infof("x = %d", x)
// * 11/01/2021 23:07:08 INFO x = 42
}
You are welcome to look at some examples too!