1package log
2
3// Logger interface
4type Logger interface {
5	// Warnings, logged by default.
6	Warnf(format string, v ...interface{})
7	// Errors, logged by default.
8	Errorf(format string, v ...interface{})
9	// Fatal errors. Will not terminate execution.
10	Fatalf(format string, v ...interface{})
11	// Informational messages.
12	Infof(format string, v ...interface{})
13	// Debugging messages. Not logged by default
14	Debugf(format string, v ...interface{})
15	// Program execution tracing. Not logged by default
16	Tracef(format string, v ...interface{})
17	// Call and print result only if debug enabled
18	LazyDebug(fn func() string)
19	// Call and print result only if trace enabled
20	LazyTrace(fn func() string)
21	// Print stack trace at specified log level
22	StackTrace() string
23}
24
25// Global logger
26var Current Logger = nil