pkg vlog, func Configure(...LoggingOpts) error
pkg vlog, func ConfigureLibraryLoggerFromFlags() error
pkg vlog, func Error(...interface{})
pkg vlog, func ErrorDepth(int, ...interface{})
pkg vlog, func Errorf(string, ...interface{})
pkg vlog, func Fatal(...interface{})
pkg vlog, func FatalDepth(int, ...interface{})
pkg vlog, func Fatalf(string, ...interface{})
pkg vlog, func FlushLog()
pkg vlog, func Info(...interface{})
pkg vlog, func InfoDepth(int, ...interface{})
pkg vlog, func InfoStack(bool)
pkg vlog, func Infof(string, ...interface{})
pkg vlog, func NewLogger(string) *Logger
pkg vlog, func Panic(...interface{})
pkg vlog, func PanicDepth(int, ...interface{})
pkg vlog, func Panicf(string, ...interface{})
pkg vlog, func Stats() (struct{ Lines, Bytes int64 }, struct{ Lines, Bytes int64 })
pkg vlog, func V(Level) bool
pkg vlog, func VI(Level) interface {  Info(args ...interface{});; Infof(format string, args ...interface{});; InfoDepth(depth int, args ...interface{});; InfoStack(all bool);}
pkg vlog, method (*Level) Get(string) interface{}
pkg vlog, method (*Level) Set(string) error
pkg vlog, method (*Level) String() string
pkg vlog, method (*Logger) Configure(...LoggingOpts) error
pkg vlog, method (*Logger) ConfigureFromFlags() error
pkg vlog, method (*Logger) Error(...interface{})
pkg vlog, method (*Logger) ErrorDepth(int, ...interface{})
pkg vlog, method (*Logger) Errorf(string, ...interface{})
pkg vlog, method (*Logger) ExplicitlySetFlags() map[string]string
pkg vlog, method (*Logger) Fatal(...interface{})
pkg vlog, method (*Logger) FatalDepth(int, ...interface{})
pkg vlog, method (*Logger) Fatalf(string, ...interface{})
pkg vlog, method (*Logger) FlushLog()
pkg vlog, method (*Logger) Info(...interface{})
pkg vlog, method (*Logger) InfoDepth(int, ...interface{})
pkg vlog, method (*Logger) InfoStack(bool)
pkg vlog, method (*Logger) Infof(string, ...interface{})
pkg vlog, method (*Logger) LogDir() string
pkg vlog, method (*Logger) Panic(...interface{})
pkg vlog, method (*Logger) PanicDepth(int, ...interface{})
pkg vlog, method (*Logger) Panicf(string, ...interface{})
pkg vlog, method (*Logger) Stats() (struct{ Lines, Bytes int64 }, struct{ Lines, Bytes int64 })
pkg vlog, method (*Logger) String() string
pkg vlog, method (*Logger) V(int) bool
pkg vlog, method (*Logger) VDepth(int, int) bool
pkg vlog, method (*Logger) VI(int) interface {  Info(args ...interface{});; Infof(format string, args ...interface{});; InfoDepth(depth int, args ...interface{});; InfoStack(all bool);}
pkg vlog, method (*Logger) VIDepth(int, int) interface {  Info(args ...interface{});; Infof(format string, args ...interface{});; InfoDepth(depth int, args ...interface{});; InfoStack(all bool);}
pkg vlog, method (*StderrThreshold) Get(string) interface{}
pkg vlog, method (*StderrThreshold) Set(string) error
pkg vlog, method (*StderrThreshold) String() string
pkg vlog, method (AlsoLogToStderr) LoggingOpt()
pkg vlog, method (AutoFlush) LoggingOpt()
pkg vlog, method (FilepathSpec) LoggingOpt()
pkg vlog, method (Level) LoggingOpt()
pkg vlog, method (LogDir) LoggingOpt()
pkg vlog, method (LogToStderr) LoggingOpt()
pkg vlog, method (MaxStackBufSize) LoggingOpt()
pkg vlog, method (ModuleSpec) LoggingOpt()
pkg vlog, method (OverridePriorConfiguration) LoggingOpt()
pkg vlog, method (StderrThreshold) LoggingOpt()
pkg vlog, method (TraceLocation) LoggingOpt()
pkg vlog, type AlsoLogToStderr bool
pkg vlog, type AutoFlush bool
pkg vlog, type FilepathSpec struct
pkg vlog, type FilepathSpec struct, embedded llog.FilepathSpec
pkg vlog, type Level llog.Level
pkg vlog, type LogDir string
pkg vlog, type LogToStderr bool
pkg vlog, type Logger struct
pkg vlog, type LoggingOpts interface { LoggingOpt }
pkg vlog, type LoggingOpts interface, LoggingOpt()
pkg vlog, type MaxStackBufSize int
pkg vlog, type ModuleSpec struct
pkg vlog, type ModuleSpec struct, embedded llog.ModuleSpec
pkg vlog, type OverridePriorConfiguration bool
pkg vlog, type StderrThreshold llog.Severity
pkg vlog, type TraceLocation struct
pkg vlog, type TraceLocation struct, embedded llog.TraceLocation
pkg vlog, var ErrConfigured error
pkg vlog, var Log *Logger
