log alternatives and similar packages
Based on the "Logging" category.
Alternatively, view log alternatives based on common mentions on social networks and blogs.
-
seelog
Seelog is a native Go logging library that provides flexible asynchronous dispatching, filtering, and formatting. -
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
DISCONTINUED. 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. -
gomol
DISCONTINUED. Gomol is a library for structured, multiple-output logging for Go with extensible logging outputs -
Kiwi Logs&Context
Fast, structured, with filters and dynamic sinks. No levels. Logger & context keeper for Go language 🥝 It smells like a mushroom. -
kemba
A tiny debug logging tool. Ideal for CLI tools and command applications. Inspired by https://github.com/visionmedia/debug
CodeRabbit: AI Code Reviews for Developers

Do you think we are missing an alternative of log or a related project?
Popular Comparisons
README
[Structured logging for golang](assets/title.png)
Package log implements a simple structured logging API inspired by Logrus, designed with centralization in mind. Read more on Medium.
Handlers
- apexlogs – handler for Apex Logs
- cli – human-friendly CLI output
- discard – discards all logs
- es – Elasticsearch handler
- graylog – Graylog handler
- json – JSON output handler
- kinesis – AWS Kinesis handler
- level – level filter handler
- logfmt – logfmt plain-text formatter
- memory – in-memory handler for tests
- multi – fan-out to multiple handlers
- papertrail – Papertrail handler
- text – human-friendly colored output
- delta – outputs the delta between log calls and spinner
Example
Example using the Apex Logs handler.
package main
import (
"errors"
"time"
"github.com/apex/log"
)
func main() {
ctx := log.WithFields(log.Fields{
"file": "something.png",
"type": "image/png",
"user": "tobi",
})
for range time.Tick(time.Millisecond * 200) {
ctx.Info("upload")
ctx.Info("upload complete")
ctx.Warn("upload retry")
ctx.WithError(errors.New("unauthorized")).Error("upload failed")
ctx.Errorf("failed to upload %s", "img.png")
}
}
*Note that all licence references and agreements mentioned in the log README section above
are relevant to that project's source code only.