ProductPromotion
Logo

Go.Lang

made by https://0x3d.site

GitHub - alexcesaro/log: Logging packages for Go
Logging packages for Go. Contribute to alexcesaro/log development by creating an account on GitHub.
Visit Site

GitHub - alexcesaro/log: Logging packages for Go

GitHub - alexcesaro/log: Logging packages for Go

This repository contains logging packages for Go:

  • stdlog is the main package of this repository, it is a simple and fast logger to the standard output.
  • buflog and golog are customizable logging class which can be used as a standalone or as a building block for other loggers. stdlog is built upon them.
  • log just provides a common interface for logging libraries.

You are more than welcome to ask questions on the Go mailing-list and open issues here if you find bugs.

stdlog

Documentation

Package stdlog provides simple and fast logging to the standard output (stdout) and is optimized for programs launched via a shell or cron. It can also be used to log to a file by redirecting the standard output to a file. This package is thread-safe.

Basic examples:

logger := stdlog.GetFromFlags()
logger.Info("Connecting to the server...")
logger.Errorf("Connection failed: %q", err)

Will output:

2014-04-02 18:09:15.862 INFO Connecting to the API...
2014-04-02 18:10:14.347 ERROR Connection failed (Server is unavailable).

Log*() functions can be used to avoid evaluating arguments when it is expensive and unnecessary:

logger.Debug("Memory usage: %s", getMemoryUsage())
if LogDebug() { logger.Debug("Memory usage: %s", getMemoryUsage()) }

If debug logging is off the getMemoryUsage() will be executed on the first line while it will not be executed on the second line.

List of command-line arguments:

-log=info
    Log events at or above this level are logged.
-stderr=false
    Logs are written to standard error (stderr) instead of standard
    output.
-flushlog=none
    Until this level is reached nothing is output and logs are stored
    in the memory. Once a log event is at or above this level, it
    outputs all logs in memory as well as the future log events. This
    feature should not be used with long-running processes.

The available levels are the eight ones described in RFC 5424 (debug, info, notice, warning, error, critical, alert, emergency) and none.

Some use cases:

  • By default, all logs except debug ones are output to the stdout. Which is useful to follow the execution of a program launched via a shell.
  • A program launched by a crontab where the variable MAILTO is set with -debug -flushlog=error will send all logs generated by the program only if an error happens. When there is no error the email will not be sent.
  • my_program > /var/log/my_program/my_program-$(date+%Y-%m-%d-%H%M%S).log will create a log file in /var/log/my_program each time it is run.

buflog

Documentation

Package buflog provides a buffered logging class that accumulates logs in memory until the flush threshold is reached which release stored logs, the buffered logger then act as a normal logger.

Basic example:

logger := buflog.New(os.Stdout, log.Info, log.Error)
logger.Info("Connecting to the server...")   // Outputs nothing
logger.Error("Connection failed")            // Outputs both lines

golog

Documentation

Package golog provides a customizable logging class which can be used as a standalone or as a building block for other loggers.

Basic example:

logger := golog.New(os.Stdout, log.Info)
logger.Info("Connecting to the server...")
logger.Errorf("Connection failed: %q", err)

Will output:

2014-04-02 18:09:15.862 INFO Connecting to the API...
2014-04-02 18:10:14.347 ERROR Connection failed (Server is unavailable).

Log*() functions can be used to avoid evaluating arguments when it is expensive and unnecessary:

logger.Debug("Memory usage: %s", getMemoryUsage())
if logger.LogDebug() { logger.Debug("Memory usage: %s", getMemoryUsage()) }

If debug logging is off getMemoryUsage() will be executed on the first line while it will not be executed on the second line.

log

Documentation

Package log provides a common interface for logging libraries.

Articles
to learn more about the golang concepts.

Resources
which are currently available to browse on.

mail [email protected] to add your project or resources here ๐Ÿ”ฅ.

FAQ's
to know more about the topic.

mail [email protected] to add your project or resources here ๐Ÿ”ฅ.

Queries
or most google FAQ's about GoLang.

mail [email protected] to add more queries here ๐Ÿ”.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory