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) VI(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
