Popularity
0.6
Growing
Activity
0.0
Declining
1
3
0
Programming language: Go
License: Mozilla Public License 2.0
Tags:
Logging
yell alternatives and similar packages
Based on the "Logging" category.
Alternatively, view yell 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. -
httpretty
Package httpretty prints the HTTP requests you make with Go pretty on your terminal. -
rollingwriter
Rolling writer is an IO util for auto rolling write in go. -
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. -
logex
An golang log lib, supports tracking and level, wrap by standard log lib -
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. -
slog
The reference implementation of the Structured Logging Facade (SLF) for Go -
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
Collect and Analyze Billions of Data Points in Real Time
Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.
Promo
www.influxdata.com
Do you think we are missing an alternative of yell or a related project?
Popular Comparisons
README
yell

yell is yet another minimalistic logging library. It comes with:
- four severity levels
- simple API
- io.Writer & sync.Locker support
- package-specific loggers
- customizations (severity names, time format, local or UTC time)
- easy, granular request location (file.go:line) logging
- semantic versioning
Example
mypkg.go:
package mypkg
import (
"os"
"github.com/jfcg/yell"
)
// log to stdout with warn or higher severity (for example).
var Logger = yell.New(": mypkg:", os.Stdout, yell.Swarn)
// Info tries to log message list with info severity
func Info(msg ...interface{}) error {
return Logger.Log(yell.Sinfo, msg...)
}
// Warn tries to log message list with warn severity
func Warn(msg ...interface{}) error {
return Logger.Log(yell.Swarn, msg...)
}
// Error tries to log message list with error severity
func Error(msg ...interface{}) (err error) {
err = Logger.Log(yell.Serror, msg...)
// extra stuff for error severity
return
}
// Fatal tries to log message list with fatal severity and panics
func Fatal(msg ...interface{}) (err error) {
err = Logger.Log(yell.Sfatal, msg...)
pm := Logger.Name() + yell.Sname[yell.Sfatal]
if err != nil {
pm += err.Error()
}
// probably panic or os.Exit(1) in a fatal situation
panic(pm)
}
myApp.go:
package main
import (
"fmt"
"mypkg"
"github.com/jfcg/yell"
)
func log() {
defer func() {
fmt.Println("recovering:", recover())
}()
// uses mypkg.Logger. yell records calling line in file.go:line format
mypkg.Info("some info:", 1, "more")
// uses yell.Default Logger, minimum severity is warning by default
yell.Warn("some warning:", "few details")
// record log() caller instead of this line
mypkg.Error(yell.Caller(1), "bad error", 3.5, "data")
// Fatal() logs & panicks
yell.Fatal("fatal mistake", 2, "hard to recover")
}
func main() {
// minimum severity for mypkg.Logger is warning, so ignored
mypkg.Info("some info:", 3, "more")
// set min severity level to info
mypkg.Logger.SetMinLevel(yell.Sinfo)
log()
// yell library uses local time by default, to get coordinated universal time
yell.UTC = true
log()
// change time format
yell.TimeFormat = yell.TimeFormat[:19]
log()
// customized severity names (increasing severity)
yell.Sname = [...]string{"信息:", "警告:", "错误:", "致命的:"}
yell.UTC = false
log()
// disable logging for yell.Default
yell.Default.SetMinLevel(yell.Snolog)
log()
}
output:
2021-03-28 21:48:53.591948: mypkg:info: myApp.go:15: some info: 1 more
2021-03-28 21:48:53.592051: myApp:warn: myApp.go:18: some warning: few details
2021-03-28 21:48:53.592063: mypkg:error: myApp.go:33: bad error 3.5 data
2021-03-28 21:48:53.592082: myApp:fatal: myApp.go:24: fatal mistake 2 hard to recover
recovering: myApp:fatal:
2021-03-28 18:48:53.592100: mypkg:info: myApp.go:15: some info: 1 more
2021-03-28 18:48:53.592110: myApp:warn: myApp.go:18: some warning: few details
2021-03-28 18:48:53.592118: mypkg:error: myApp.go:37: bad error 3.5 data
2021-03-28 18:48:53.592126: myApp:fatal: myApp.go:24: fatal mistake 2 hard to recover
recovering: myApp:fatal:
2021-03-28 18:48:53: mypkg:info: myApp.go:15: some info: 1 more
2021-03-28 18:48:53: myApp:warn: myApp.go:18: some warning: few details
2021-03-28 18:48:53: mypkg:error: myApp.go:41: bad error 3.5 data
2021-03-28 18:48:53: myApp:fatal: myApp.go:24: fatal mistake 2 hard to recover
recovering: myApp:fatal:
2021-03-28 21:48:53: mypkg:信息: myApp.go:15: some info: 1 more
2021-03-28 21:48:53: myApp:警告: myApp.go:18: some warning: few details
2021-03-28 21:48:53: mypkg:错误: myApp.go:46: bad error 3.5 data
2021-03-28 21:48:53: myApp:致命的: myApp.go:24: fatal mistake 2 hard to recover
recovering: myApp:致命的:
2021-03-28 21:48:53: mypkg:信息: myApp.go:15: some info: 1 more
2021-03-28 21:48:53: mypkg:错误: myApp.go:50: bad error 3.5 data
recovering: myApp:致命的:
Support
If you use yell and like it, please support via ETH:0x464B840ee70bBe7962b90bD727Aac172Fa8B9C15