July 2019
Intermediate to advanced
502 pages
14h
English
Delinkcious is primarily implemented with Go, so let's talk about logging in Go. There is a standard library Logger, which is a struct and not an interface. It is configurable, and you can pass an io.Writer object when you create it. However, the methods of the Logger struct are rigid and don't support log levels or structured logging. Also, the fact that there is just one output writer may be a limitation in some cases. Here is the specification for the standard Logger:
type Logger struct { ... } // Not an interface!func New(out io.Writer, prefix string, flag int) *Logger// flag controls date, time, µs, UTC, caller// Logfunc (l *Logger) Print(v ...interface{})func (l *Logger) Printf(format string, ...