Popularity
5.1
Growing
Activity
3.9
Growing
179
7
15
Programming language: Go
License: MIT License
Tags:
Logging
Latest version: v1.5.1
glg alternatives and similar packages
Based on the "Logging" category.
Alternatively, view glg alternatives based on common mentions on social networks and blogs.
-
spew
Implements a deep pretty printer for Go data structures to aid in debugging -
seelog
Seelog is a native Go logging library that provides flexible asynchronous dispatching, filtering, and formatting. -
go-logger
Simple logger for Go programs. Allows custom formats for messages. -
rollingwriter
Rolling writer is an IO util for auto rolling write in go. -
httpretty
Package httpretty prints the HTTP requests you make with Go pretty on your terminal. -
sqldb-logger
A logger for Go SQL database driver without modifying existing *sql.DB stdlib usage. -
loggo
A logging library for Go. Doesn't use the built in go log standard library, but instead offers a replacement. -
ozzo-log
A Go (golang) package providing high-performance asynchronous logging, message filtering by severity and category, and multiple message targets. -
gologger
Simple easy to use log lib for go, logs in Colored Cosole, Simple Console, File or Elasticsearch. -
noodlog
๐ Parametrized JSON logging library in Golang which lets you obfuscate sensitive data and marshal any kind of content. -
mlog
A simple logging module for go, with a rotating file feature and console logging. -
slf
The Structured Logging Facade (SLF) for Go (like SLF4J but structured and for Go) -
Kiwi Logs&Context
Fast, structured, with filters and dynamic sinks. No levels. Logger & context keeper for Go language ๐ฅ It smell like a mushroom. -
gomol
Gomol is a library for structured, multiple-output logging for Go with extensible logging outputs -
kemba
A tiny debug logging tool. Ideal for CLI tools and command applications. Inspired by https://github.com/visionmedia/debug -
go-rethinklogger
Automatically persists all the logs of your Go application inside RethinkDB. -
MrZ's go-logger
:mag: Easy to use, extendable and super fast logging package for Go
Clean code begins in your IDE with SonarLint
Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.
Promo
www.sonarlint.org
Do you think we are missing an alternative of glg or a related project?
Popular Comparisons
README
glg is simple golang logging library
Requirement
Go 1.16
Installation
go get github.com/kpango/glg
Example
package main
import (
"net/http"
"time"
"github.com/kpango/glg"
)
// NetWorkLogger sample network logger
type NetWorkLogger struct{}
func (n NetWorkLogger) Write(b []byte) (int, error) {
// http.Post("localhost:8080/log", "", bytes.NewReader(b))
http.Get("http://127.0.0.1:8080/log")
glg.Success("Requested")
glg.Infof("RawString is %s", glg.RawString(b))
return 1, nil
}
func main() {
// var errWriter io.Writer
// var customWriter io.Writer
infolog := glg.FileWriter("/tmp/info.log", 0666)
customTag := "FINE"
customErrTag := "CRIT"
errlog := glg.FileWriter("/tmp/error.log", 0666)
defer infolog.Close()
defer errlog.Close()
glg.Get().
SetMode(glg.BOTH). // default is STD
// DisableColor().
// SetMode(glg.NONE).
// SetMode(glg.WRITER).
// SetMode(glg.BOTH).
// InitWriter().
// AddWriter(customWriter).
// SetWriter(customWriter).
// AddLevelWriter(glg.LOG, customWriter).
// AddLevelWriter(glg.INFO, customWriter).
// AddLevelWriter(glg.WARN, customWriter).
// AddLevelWriter(glg.ERR, customWriter).
// SetLevelWriter(glg.LOG, customWriter).
// SetLevelWriter(glg.INFO, customWriter).
// SetLevelWriter(glg.WARN, customWriter).
// SetLevelWriter(glg.ERR, customWriter).
// EnableJSON().
SetLineTraceMode(glg.TraceLineNone).
AddLevelWriter(glg.INFO, infolog). // add info log file destination
AddLevelWriter(glg.ERR, errlog). // add error log file destination
AddLevelWriter(glg.WARN, rotate) // add error log file destination
glg.Info("info")
glg.Infof("%s : %s", "info", "formatted")
glg.Log("log")
glg.Logf("%s : %s", "info", "formatted")
glg.Debug("debug")
glg.Debugf("%s : %s", "info", "formatted")
glg.Trace("Trace")
glg.Tracef("%s : %s", "tracef", "formatted")
glg.Warn("warn")
glg.Warnf("%s : %s", "info", "formatted")
glg.Error("error")
glg.Errorf("%s : %s", "info", "formatted")
glg.Success("ok")
glg.Successf("%s : %s", "info", "formatted")
glg.Fail("fail")
glg.Failf("%s : %s", "info", "formatted")
glg.Print("Print")
glg.Println("Println")
glg.Printf("%s : %s", "printf", "formatted")
// set global log level to ERR level
glg.Info("before setting level to ERR this message will show")
glg.Get().SetLevel(glg.ERR)
glg.Info("after setting level to ERR this message will not show")
glg.Error("this log is ERR level this will show")
glg.Get().SetLevel(glg.DEBG)
glg.Info("log level is now DEBG, this INFO level log will show")
glg.Get().
AddStdLevel(customTag, glg.STD, false). // user custom log level
AddErrLevel(customErrTag, glg.STD, true). // user custom error log level
SetLevelColor(glg.TagStringToLevel(customTag), glg.Cyan). // set color output to user custom level
SetLevelColor(glg.TagStringToLevel(customErrTag), glg.Red) // set color output to user custom level
glg.CustomLog(customTag, "custom logging")
glg.CustomLog(customErrTag, "custom error logging")
// glg.Info("kpango's glg supports disable timestamp for logging")
glg.Get().DisableTimestamp()
glg.Info("timestamp disabled")
glg.Warn("timestamp disabled")
glg.Log("timestamp disabled")
glg.Get().EnableTimestamp()
glg.Info("timestamp enabled")
glg.Warn("timestamp enabled")
glg.Log("timestamp enabled")
glg.Info("kpango's glg support line trace logging")
glg.Error("error log shows short line trace by default")
glg.Info("error log shows none trace by default")
glg.Get().SetLineTraceMode(glg.TraceLineShort)
glg.Error("after configure TraceLineShort, error log shows short line trace")
glg.Info("after configure TraceLineShort, info log shows short line trace")
glg.Get().DisableTimestamp()
glg.Error("after configure TraceLineShort and DisableTimestamp, error log shows short line trace without timestamp")
glg.Info("after configure TraceLineShort and DisableTimestamp, info log shows short line trace without timestamp")
glg.Get().EnableTimestamp()
glg.Get().SetLineTraceMode(glg.TraceLineLong)
glg.Error("after configure TraceLineLong, error log shows long line trace")
glg.Info("after configure TraceLineLong, info log shows long line trace")
glg.Get().DisableTimestamp()
glg.Error("after configure TraceLineLong and DisableTimestamp, error log shows long line trace without timestamp")
glg.Info("after configure TraceLineLong and DisableTimestamp, info log shows long line trace without timestamp")
glg.Get().EnableTimestamp()
glg.Get().SetLineTraceMode(glg.TraceLineNone)
glg.Error("after configure TraceLineNone, error log without line trace")
glg.Info("after configure TraceLineNone, info log without line trace")
glg.Get().SetLevelLineTraceMode(glg.INFO, glg.TraceLineLong)
glg.Info("after configure Level trace INFO=TraceLineLong, only info log shows long line trace")
glg.Error("after configure Level trace INFO=TraceLineLong, error log without long line trace")
glg.Get().SetLevelLineTraceMode(glg.ERR, glg.TraceLineShort)
glg.Info("after configure Level trace ERR=TraceLineShort, info log still shows long line trace")
glg.Error("after configure Level trace ERR=TraceLineShort, error log now shows short line trace")
glg.Get().SetLineTraceMode(glg.TraceLineNone)
glg.Info("kpango's glg support json logging")
glg.Get().EnableJSON()
err := glg.Warn("kpango's glg", "support", "json", "logging")
if err != nil {
glg.Get().DisableJSON()
glg.Error(err)
glg.Get().EnableJSON()
}
err = glg.Info("hello", struct {
Name string
Age int
Gender string
}{
Name: "kpango",
Age: 28,
Gender: "male",
}, 2020)
if err != nil {
glg.Get().DisableJSON()
glg.Error(err)
glg.Get().EnableJSON()
} glg.CustomLog(customTag, "custom logging")
glg.CustomLog(customErrTag, "custom error logging")
glg.Get().AddLevelWriter(glg.DEBG, NetWorkLogger{}) // add info log file destination
http.Handle("/glg", glg.HTTPLoggerFunc("glg sample", func(w http.ResponseWriter, r *http.Request) {
glg.New().
AddLevelWriter(glg.Info, NetWorkLogger{}).
AddLevelWriter(glg.Info, w).
Info("glg HTTP server logger sample")
}))
http.ListenAndServe("port", nil)
// fatal logging
glg.Fatalln("fatal")
}
Benchmarks
Contribution
- Fork it ( https://github.com/kpango/glg/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create new Pull Request
Author
LICENSE
glg released under MIT license, refer LICENSE file.
*Note that all licence references and agreements mentioned in the glg README section above
are relevant to that project's source code only.