package hclog
import "github.com/hashicorp/go-hclog"
Index ¶
- Constants
- Variables
- type CapturedStacktrace
- type Format
- type Level
- type LevelWriter
- type LeveledWriter
- func NewLeveledWriter(standard io.Writer, overrides map[Level]io.Writer) *LeveledWriter
- func (lw *LeveledWriter) LevelWrite(level Level, p []byte) (int, error)
- func (lw *LeveledWriter) Write(p []byte) (int, error)
- type Logger
- func Default() Logger
- func L() Logger
- func New(opts *LoggerOptions) Logger
- func NewNullLogger() Logger
- type LoggerOptions
- type StandardLoggerOptions
Constants ¶
const TimeFormat = "2006-01-02T15:04:05.000Z0700"
TimeFormat to use for logging. This is a version of RFC3339 that contains contains millisecond precision
Variables ¶
var ( //DefaultOutput is used as the default log output. DefaultOutput io.Writer = os.Stderr // DefaultLevel is used as the default log level. DefaultLevel = Info )
var ( // DefaultOptions is used to create the Default logger. These are read // only when the Default logger is created, so set them as soon as the // process starts. DefaultOptions = &LoggerOptions{ Level: DefaultLevel, Output: DefaultOutput, } )
Types ¶
type CapturedStacktrace ¶
type CapturedStacktrace string
CapturedStacktrace represents a stacktrace captured by a previous call to log.Stacktrace. If passed to a logging function, the stacktrace will be appended.
func Stacktrace ¶
func Stacktrace() CapturedStacktrace
Stacktrace captures a stacktrace of the current goroutine and returns it to be passed to a logging function.
type Format ¶
type Format []interface{}
Format is a simple convience type for when formatting is required. When processing a value of this type, the logger automatically treats the first argument as a Printf formatting string and passes the rest as the values to be formatted. For example: L.Info(Fmt{"%d beans/day", beans}).
func Fmt ¶
Fmt returns a Format type. This is a convience function for creating a Format type.
type Level ¶
type Level int32
Level represents a log level.
const ( // NoLevel is a special level used to indicate that no level has been // set and allow for a default to be used. NoLevel Level = 0 // Trace is the most verbose level. Intended to be used for the tracing // of actions in code, such as function enters/exits, etc. Trace Level = 1 // Debug information for programmer lowlevel analysis. Debug Level = 2 // Info information about steady state operations. Info Level = 3 // Warn information about rare but handled events. Warn Level = 4 // Error information about unrecoverable events. Error Level = 5 )
func LevelFromString ¶
LevelFromString returns a Level type for the named log level, or "NoLevel" if the level string is invalid. This facilitates setting the log level via config or environment variable by name in a predictable way.
type LevelWriter ¶
LevelWriter is the interface that wraps the LevelWrite method.
type LeveledWriter ¶
type LeveledWriter struct {
// contains filtered or unexported fields
}
LeveledWriter writes all log messages to the standard writer, except for log levels that are defined in the overrides map.
func NewLeveledWriter ¶
NewLeveledWriter returns an initialized LeveledWriter.
standard will be used as the default writer for all log levels, except for log levels that are defined in the overrides map.
func (*LeveledWriter) LevelWrite ¶
func (lw *LeveledWriter) LevelWrite(level Level, p []byte) (int, error)
LevelWrite implements LevelWriter.
func (*LeveledWriter) Write ¶
func (lw *LeveledWriter) Write(p []byte) (int, error)
Write implements io.Writer.
type Logger ¶
type Logger interface { // Args are alternating key, val pairs // keys must be strings // vals can be any type, but display is implementation specific // Emit a message and key/value pairs at the TRACE level Trace(msg string, args ...interface{}) // Emit a message and key/value pairs at the DEBUG level Debug(msg string, args ...interface{}) // Emit a message and key/value pairs at the INFO level Info(msg string, args ...interface{}) // Emit a message and key/value pairs at the WARN level Warn(msg string, args ...interface{}) // Emit a message and key/value pairs at the ERROR level Error(msg string, args ...interface{}) // Indicate if TRACE logs would be emitted. This and the other Is* guards // are used to elide expensive logging code based on the current level. IsTrace() bool // Indicate if DEBUG logs would be emitted. This and the other Is* guards IsDebug() bool // Indicate if INFO logs would be emitted. This and the other Is* guards IsInfo() bool // Indicate if WARN logs would be emitted. This and the other Is* guards IsWarn() bool // Indicate if ERROR logs would be emitted. This and the other Is* guards IsError() bool // Creates a sublogger that will always have the given key/value pairs With(args ...interface{}) Logger // Create a logger that will prepend the name string on the front of all messages. // If the logger already has a name, the new value will be appended to the current // name. That way, a major subsystem can use this to decorate all it's own logs // without losing context. Named(name string) Logger // Create a logger that will prepend the name string on the front of all messages. // This sets the name of the logger to the value directly, unlike Named which honor // the current name as well. ResetNamed(name string) Logger // Updates the level. This should affect all sub-loggers as well. If an // implementation cannot update the level on the fly, it should no-op. SetLevel(level Level) // Return a value that conforms to the stdlib log.Logger interface StandardLogger(opts *StandardLoggerOptions) *log.Logger // Return a value that conforms to io.Writer, which can be passed into log.SetOutput() StandardWriter(opts *StandardLoggerOptions) io.Writer }
Logger describes the interface that must be implemeted by all loggers.
func Default ¶
func Default() Logger
Default returns a globally held logger. This can be a good starting place, and then you can use .With() and .Name() to create sub-loggers to be used in more specific contexts.
func L ¶
func L() Logger
L is a short alias for Default().
func New ¶
func New(opts *LoggerOptions) Logger
New returns a configured logger.
func NewNullLogger ¶
func NewNullLogger() Logger
NewNullLogger instantiates a Logger for which all calls will succeed without doing anything. Useful for testing purposes.
type LoggerOptions ¶
type LoggerOptions struct { // Name of the subsystem to prefix logs with Name string // The threshold for the logger. Anything less severe is supressed Level Level // Where to write the logs to. Defaults to os.Stderr if nil Output io.Writer // An optional mutex pointer in case Output is shared Mutex *sync.Mutex // Control if the output should be in JSON. JSONFormat bool // Include file and line information in each log line IncludeLocation bool // The time format to use instead of the default TimeFormat string }
LoggerOptions can be used to configure a new logger.
type StandardLoggerOptions ¶
type StandardLoggerOptions struct { // Indicate that some minimal parsing should be done on strings to try // and detect their level and re-emit them. // This supports the strings like [ERROR], [ERR] [TRACE], [WARN], [INFO], // [DEBUG] and strip it off before reapplying it. InferLevels bool }
StandardLoggerOptions can be used to configure a new standard logger.
Source Files ¶
global.go intlogger.go logger.go nulllogger.go stacktrace.go stdlog.go writer.go
Directories ¶
Path | Synopsis |
---|---|
hclogvet | Vet is a simple checker for static errors in Go source code. |
- Version
- v0.8.0
- Published
- Mar 5, 2019
- Platform
- windows/amd64
- Imports
- 16 packages
- Last checked
- now –
Tools for package owners.