github.com/gammazero/alog (go): Package alog provides asynchronous structured leveled log functionality.  The alog package provides structured logging with JSON output and with semi-structured text-based logging.  Logging is asynchronous, where work and time to format log messages and write them to I/O is done by an asynchronous goroutine, minimizing the time the application waits for a log call to return. Decisions to log in a normal, especially a performance critical, code path should still be carefully considered.  A Logger instance generates lines of output to an io.Writer.  Each logging operation makes a single call to the Writer's Write method.  A Logger can be used simultaneously from multiple goroutines; it guarantees serialized access to the Writer.  The use of structured and leveled logging is completely optional.  Leveled logging is disabled by specifying `alog.NoLevel` when creating a new logger instance.  If considering using leveled logging, please read this discussion:  https://dave.cheney.net/2015/11/05/lets-talk-about-logging  Using alog requires creating a logger instance.  There is no default logger since the asynchronous logging requires a separate goroutine.
Keywords: logger|logging-library