Documentation
¶
Overview ¶
Package logs defines loggers for use in projects.
Package logs defines loggers for use in projects.
Copyright (C) 2020-2022 Arm Limited or its affiliates and Contributors. All rights reserved.
SPDX-License-Identifier: Apache-2.0
Copyright (C) 2020-2022 Arm Limited or its affiliates and Contributors. All rights reserved.
SPDX-License-Identifier: Apache-2.0
Copyright (C) 2020-2022 Arm Limited or its affiliates and Contributors. All rights reserved.
SPDX-License-Identifier: Apache-2.0
Package logs defines loggers for use in projects.
Copyright (C) 2020-2022 Arm Limited or its affiliates and Contributors. All rights reserved.
SPDX-License-Identifier: Apache-2.0
Copyright (C) 2020-2024 Arm Limited or its affiliates and Contributors. All rights reserved.
SPDX-License-Identifier: Apache-2.0
Package logs defines loggers for use in projects.
- Copyright (C) 2020-2022 Arm Limited or its affiliates and Contributors. All rights reserved.
- SPDX-License-Identifier: Apache-2.0
Package logs defines loggers for use in projects.
Index ¶
- Constants
- func GetLogrLoggerFromContext(ctx context.Context) (logger logr.Logger, err error)
- func NewErrorWriterFromLoggers(l Loggers) (w io.Writer, err error)
- func NewHclogWrapper(loggers Loggers) (hclogL hclog.Logger, err error)
- func NewInfoWriterFromLoggers(l Loggers) (w io.Writer, err error)
- func NewLoggersLogSink(logger Loggers) logr.LogSink
- func NewLogrLoggerFromLoggers(loggers Loggers) logr.Logger
- func NewPlainLoggersSink(logger Loggers) logr.LogSink
- func NewPlainLogrLoggerFromLoggers(loggers Loggers) logr.Logger
- type AsynchronousLoggers
- func (l *AsynchronousLoggers) Check() error
- func (l *AsynchronousLoggers) Close() error
- func (l *AsynchronousLoggers) GetLoggerSource() string
- func (l *AsynchronousLoggers) Log(output ...interface{})
- func (l *AsynchronousLoggers) LogError(err ...interface{})
- func (l *AsynchronousLoggers) SetLogSource(source string) error
- func (l *AsynchronousLoggers) SetLoggerSource(source string) error
- type DiodeWriter
- type GenericLoggers
- type IMultipleLoggers
- type JSONLoggers
- func (l *JSONLoggers) Check() error
- func (l *JSONLoggers) Close() error
- func (l *JSONLoggers) Configure() error
- func (l *JSONLoggers) GetLoggerSource() string
- func (l *JSONLoggers) GetSource() string
- func (l *JSONLoggers) Log(output ...interface{})
- func (l *JSONLoggers) LogError(err ...interface{})
- func (l *JSONLoggers) SetLogSource(source string) error
- func (l *JSONLoggers) SetLoggerSource(source string) error
- type Loggers
- func CreateFileLogger(logFile string, loggerSource string) (loggers Loggers, err error)deprecated
- func CreateStdLogger(loggerSource string) (loggers Loggers, err error)deprecated
- func NewAsynchronousLoggers(slowOutputWriter WriterWithSource, slowErrorWriter WriterWithSource, ...) (loggers Loggers, err error)
- func NewAsynchronousStdLogger(loggerSource string, ringBufferSize int, pollInterval time.Duration, ...) (loggers Loggers, err error)
- func NewFileLogger(logFile string, loggerSource string) (loggers Loggers, err error)
- func NewFileOnlyLogger(logFile string, loggerSource string) (loggers Loggers, err error)
- func NewHclogLogger(hclogL hclog.Logger, loggerSource string) (loggers Loggers, err error)
- func NewJSONLogger(writer WriterWithSource, loggerSource string, source string) (loggers Loggers, err error)
- func NewJSONLoggerForSlowWriter(slowWriter WriterWithSource, ringBufferSize int, pollInterval time.Duration, ...) (loggers Loggers, err error)
- func NewLogrLogger(logrImpl logr.Logger, loggerSource string) (Loggers, error)
- func NewLogrLoggerWithClose(logrImpl logr.Logger, loggerSource string, closeFunc func() error) (loggers Loggers, err error)
- func NewLogrusLogger(logrusL *logrus.Logger, loggerSource string) (loggers Loggers, err error)
- func NewLogrusLoggerWithFileHook(logrusL *logrus.Logger, loggerSource string, logFilePath string) (loggers Loggers, err error)
- func NewNoopLogger(loggerSource string) (loggers Loggers, err error)
- func NewPipeLogger() (loggers Loggers, err error)
- func NewQuietLogger(loggers Loggers) (Loggers, error)
- func NewSlogLogger(slogL *slog.Logger, loggerSource string) (loggers Loggers, err error)
- func NewStdLogger(loggerSource string) (loggers Loggers, err error)
- func NewZapLogger(zapL *zap.Logger, loggerSource string) (loggers Loggers, err error)
- type MultipleLogger
- func (c *MultipleLogger) Append(l ...Loggers) error
- func (c *MultipleLogger) AppendLogger(l ...logr.Logger) error
- func (c *MultipleLogger) Check() error
- func (c *MultipleLogger) Close() error
- func (c *MultipleLogger) GetLoggerSource() string
- func (c *MultipleLogger) Log(output ...interface{})
- func (c *MultipleLogger) LogError(err ...interface{})
- func (c *MultipleLogger) SetLogSource(source string) error
- func (c *MultipleLogger) SetLoggerSource(source string) error
- type MultipleLoggerWithLoggerSource
- type MultipleWritersWithSource
- func (w *MultipleWritersWithSource) AddWriters(writers ...WriterWithSource) error
- func (w *MultipleWritersWithSource) Close() (err error)
- func (w *MultipleWritersWithSource) GetWriters() ([]WriterWithSource, error)
- func (w *MultipleWritersWithSource) SetSource(source string) (err error)
- func (w *MultipleWritersWithSource) Write(p []byte) (n int, err error)
- type StdErrWriter
- type StdLogger
- type StdWriter
- type StringLoggers
- type StringWriter
- type WriterWithSource
Constants ¶
const ( KeyLogSource = "source" KeyLoggerSource = "logger-source" )
Variables ¶
This section is empty.
Functions ¶
func GetLogrLoggerFromContext ¶ added in v1.37.0
GetLogrLoggerFromContext gets a logger from a context, unless it does not exist then it returns an ErrNoLogger
func NewErrorWriterFromLoggers ¶ added in v1.36.0
NewErrorWriterFromLoggers returns a io.Writer from a Loggers by only returning ERROR messages
func NewHclogWrapper ¶ added in v1.36.0
NewHclogWrapper returns an hclog logger from a Loggers logger
func NewInfoWriterFromLoggers ¶ added in v1.36.0
NewInfoWriterFromLoggers returns a io.Writer from a Loggers by only returning INFO messages
func NewLoggersLogSink ¶ added in v1.67.0
func NewLogrLoggerFromLoggers ¶ added in v1.14.0
NewLogrLoggerFromLoggers converts loggers into a logr.Logger
func NewPlainLoggersSink ¶ added in v1.67.0
func NewPlainLogrLoggerFromLoggers ¶ added in v1.67.0
NewPlainLogrLoggerFromLoggers converts loggers into a logr.Logger but do not print any data other than the messages
Types ¶
type AsynchronousLoggers ¶
type AsynchronousLoggers struct {
// contains filtered or unexported fields
}
func (*AsynchronousLoggers) Check ¶
func (l *AsynchronousLoggers) Check() error
func (*AsynchronousLoggers) Close ¶
func (l *AsynchronousLoggers) Close() error
func (*AsynchronousLoggers) GetLoggerSource ¶
func (l *AsynchronousLoggers) GetLoggerSource() string
func (*AsynchronousLoggers) Log ¶
func (l *AsynchronousLoggers) Log(output ...interface{})
func (*AsynchronousLoggers) LogError ¶
func (l *AsynchronousLoggers) LogError(err ...interface{})
func (*AsynchronousLoggers) SetLogSource ¶
func (l *AsynchronousLoggers) SetLogSource(source string) error
func (*AsynchronousLoggers) SetLoggerSource ¶
func (l *AsynchronousLoggers) SetLoggerSource(source string) error
type DiodeWriter ¶
type DiodeWriter struct { WriterWithSource // contains filtered or unexported fields }
func (*DiodeWriter) Close ¶
func (w *DiodeWriter) Close() error
func (*DiodeWriter) SetSource ¶
func (w *DiodeWriter) SetSource(source string) error
type GenericLoggers ¶
func (*GenericLoggers) Check ¶
func (l *GenericLoggers) Check() error
func (*GenericLoggers) Log ¶
func (l *GenericLoggers) Log(output ...interface{})
func (*GenericLoggers) LogError ¶
func (l *GenericLoggers) LogError(err ...interface{})
func (*GenericLoggers) SetLogSource ¶
func (l *GenericLoggers) SetLogSource(string) error
func (*GenericLoggers) SetLoggerSource ¶
func (l *GenericLoggers) SetLoggerSource(string) error
type IMultipleLoggers ¶ added in v1.22.0
type IMultipleLoggers interface { Loggers // AppendLogger appends generic loggers to the internal list of loggers managed by this system. AppendLogger(l ...logr.Logger) error // Append appends loggers to the internal list of loggers managed by this system. Append(l ...Loggers) error }
IMultipleLoggers provides an interface to manage multiple loggers the same way as a single logger.
func NewCombinedLoggers ¶ added in v1.47.0
func NewCombinedLoggers(loggersList ...Loggers) (l IMultipleLoggers, err error)
NewCombinedLoggers returns a logger which logs to a list of logger. If list is empty, it will error.
func NewMultipleLoggers ¶ added in v1.22.0
func NewMultipleLoggers(loggerSource string, loggersList ...Loggers) (l IMultipleLoggers, err error)
NewMultipleLoggers returns a logger which abstracts and internally manages a list of loggers. if no default loggers are provided, the logger will be set to print to the standard output.
type JSONLoggers ¶
type JSONLoggers struct { Loggers // contains filtered or unexported fields }
JSONLoggers defines a JSON logger
func (*JSONLoggers) Check ¶
func (l *JSONLoggers) Check() error
Check checks whether the logger is correctly defined or not.
func (*JSONLoggers) Configure ¶
func (l *JSONLoggers) Configure() error
func (*JSONLoggers) GetLoggerSource ¶
func (l *JSONLoggers) GetLoggerSource() string
func (*JSONLoggers) GetSource ¶
func (l *JSONLoggers) GetSource() string
func (*JSONLoggers) Log ¶
func (l *JSONLoggers) Log(output ...interface{})
Log logs to the output stream.
func (*JSONLoggers) LogError ¶
func (l *JSONLoggers) LogError(err ...interface{})
LogError logs to the error stream.
func (*JSONLoggers) SetLogSource ¶
func (l *JSONLoggers) SetLogSource(source string) error
func (*JSONLoggers) SetLoggerSource ¶
func (l *JSONLoggers) SetLoggerSource(source string) error
type Loggers ¶
type Loggers interface { io.Closer // Check returns whether the loggers are correctly defined or not. Check() error // SetLogSource sets the source of the log message e.g. related build job, related command, etc. SetLogSource(source string) error // SetLoggerSource sets the source of the logger e.g. APIs, Build worker, CMSIS tools. SetLoggerSource(source string) error // Log logs to the output stream/logger. Log(output ...interface{}) // LogError logs to the Error stream/logger. LogError(err ...interface{}) }
Loggers defines generic loggers which separate common logging messages from errors. This is to use in cases where it is necessary to separate the two streams e.g. remote procedure call (RPC) In most cases however, if only a standard logger is needed, it is advised to use logr.Logger.
func CreateFileLogger
deprecated
func CreateStdLogger
deprecated
func NewAsynchronousLoggers ¶
func NewAsynchronousLoggers(slowOutputWriter WriterWithSource, slowErrorWriter WriterWithSource, ringBufferSize int, pollInterval time.Duration, loggerSource string, source string, droppedMessagesLogger Loggers) (loggers Loggers, err error)
func NewFileLogger ¶ added in v1.14.0
NewFileLogger creates a logger to a file.
func NewFileOnlyLogger ¶ added in v1.68.0
NewFileOnlyLogger creates a logger to a file such as NewFileLogger but logs are only sent to a file and will not be printed to StdErr or StdOut.
func NewHclogLogger ¶ added in v1.35.0
NewHclogLogger returns a logger which uses hclog logger (https://github.com/hashicorp/go-hclog)
func NewJSONLogger ¶
func NewJSONLogger(writer WriterWithSource, loggerSource string, source string) (loggers Loggers, err error)
NewJSONLogger creates a Json logger.
func NewJSONLoggerForSlowWriter ¶
func NewJSONLoggerForSlowWriter(slowWriter WriterWithSource, ringBufferSize int, pollInterval time.Duration, loggerSource string, source string, droppedMessagesLogger Loggers) (loggers Loggers, err error)
NewJSONLoggerForSlowWriter creates a lock free, non blocking & thread safe logger wrapped around slowWriter
params: slowWriter : writer used to write data streams ringBufferSize : size of ring buffer used to receive messages pollInterval : polling duration to check buffer content loggerSource : logger application name source : source string droppedMessagesLogger : logger for dropped messages If pollInterval is greater than 0, a poller is used otherwise a waiter is used.
func NewLogrLogger ¶ added in v1.14.0
NewLogrLogger creates loggers based on a logr implementation (https://github.com/go-logr/logr)
func NewLogrLoggerWithClose ¶ added in v1.29.0
func NewLogrLoggerWithClose(logrImpl logr.Logger, loggerSource string, closeFunc func() error) (loggers Loggers, err error)
NewLogrLoggerWithClose creates loggers based on a logr implementation (https://github.com/go-logr/logr)
func NewLogrusLogger ¶
NewLogrusLogger returns a logger which uses logrus logger (https://github.com/Sirupsen/logrus)
func NewLogrusLoggerWithFileHook ¶ added in v1.14.0
func NewLogrusLoggerWithFileHook(logrusL *logrus.Logger, loggerSource string, logFilePath string) (loggers Loggers, err error)
NewLogrusLoggerWithFileHook returns a logger which uses a logrus logger (https://github.com/Sirupsen/logrus) and writes the logs to `logFilePath`
func NewNoopLogger ¶
func NewPipeLogger ¶ added in v1.63.0
NewPipeLogger will log messages without appending any prefix. Can be used when re-logging some other log output to prevent duplication of the log source etc.
func NewQuietLogger ¶ added in v1.52.0
NewQuietLogger returns a quiet logger which only logs errors.
func NewSlogLogger ¶ added in v1.45.0
NewSlogLogger returns a logger which uses slog logger (andard library package )
func NewStdLogger ¶ added in v1.14.0
NewStdLogger creates a logger to standard output/error
func NewZapLogger ¶ added in v1.29.0
NewZapLogger returns a logger which uses zap logger (https://github.com/uber-go/zap)
type MultipleLogger ¶ added in v1.22.0
type MultipleLogger struct {
// contains filtered or unexported fields
}
func (*MultipleLogger) Append ¶ added in v1.22.0
func (c *MultipleLogger) Append(l ...Loggers) error
func (*MultipleLogger) AppendLogger ¶ added in v1.22.0
func (c *MultipleLogger) AppendLogger(l ...logr.Logger) error
func (*MultipleLogger) Check ¶ added in v1.22.0
func (c *MultipleLogger) Check() error
func (*MultipleLogger) Close ¶ added in v1.22.0
func (c *MultipleLogger) Close() error
func (*MultipleLogger) GetLoggerSource ¶ added in v1.22.0
func (c *MultipleLogger) GetLoggerSource() string
func (*MultipleLogger) Log ¶ added in v1.22.0
func (c *MultipleLogger) Log(output ...interface{})
func (*MultipleLogger) LogError ¶ added in v1.22.0
func (c *MultipleLogger) LogError(err ...interface{})
func (*MultipleLogger) SetLogSource ¶ added in v1.22.0
func (c *MultipleLogger) SetLogSource(source string) error
func (*MultipleLogger) SetLoggerSource ¶ added in v1.22.0
func (c *MultipleLogger) SetLoggerSource(source string) error
type MultipleLoggerWithLoggerSource ¶ added in v1.47.0
type MultipleLoggerWithLoggerSource struct {
MultipleLogger
}
func (*MultipleLoggerWithLoggerSource) Append ¶ added in v1.47.0
func (c *MultipleLoggerWithLoggerSource) Append(l ...Loggers) error
type MultipleWritersWithSource ¶
type MultipleWritersWithSource struct {
// contains filtered or unexported fields
}
func CreateMultipleWritersWithSource
deprecated
func CreateMultipleWritersWithSource(writers ...WriterWithSource) (writer *MultipleWritersWithSource, err error)
CreateMultipleWritersWithSource creates a compound writer with source.
Deprecated: Use NewMultipleWritersWithSource instead
func NewMultipleWritersWithSource ¶ added in v1.14.0
func NewMultipleWritersWithSource(writers ...WriterWithSource) (writer *MultipleWritersWithSource, err error)
func (*MultipleWritersWithSource) AddWriters ¶
func (w *MultipleWritersWithSource) AddWriters(writers ...WriterWithSource) error
func (*MultipleWritersWithSource) Close ¶
func (w *MultipleWritersWithSource) Close() (err error)
func (*MultipleWritersWithSource) GetWriters ¶
func (w *MultipleWritersWithSource) GetWriters() ([]WriterWithSource, error)
func (*MultipleWritersWithSource) SetSource ¶
func (w *MultipleWritersWithSource) SetSource(source string) (err error)
type StdErrWriter ¶
type StdErrWriter struct {
WriterWithSource
}
func (*StdErrWriter) Close ¶
func (w *StdErrWriter) Close() error
func (*StdErrWriter) SetSource ¶
func (w *StdErrWriter) SetSource(source string) error
type StdLogger ¶ added in v1.14.0
type StdLogger interface { // Output is the same as log.Output and log.Logger.Output. Output(calldepth int, logline string) error }
StdLogger is the subset of the Go stdlib log.Logger API.
func NewGolangStdLoggerFromLoggers ¶ added in v1.67.0
type StdWriter ¶
type StdWriter struct {
WriterWithSource
}
type StringLoggers ¶
type StringLoggers struct { GenericLoggers LogWriter StringWriter }
func CreateStringLogger
deprecated
func CreateStringLogger(loggerSource string) (loggers *StringLoggers, err error)
CreateStringLogger creates a logger to a string builder.
Deprecated: Use NewStringLogger instead
func NewPlainStringLogger ¶ added in v1.47.0
func NewPlainStringLogger() (loggers *StringLoggers, err error)
NewPlainStringLogger creates a logger to a string builder with no extra flag, prefix or tag, just the logged text. All messages (whether they are output or error) are merged together.
func NewStringLogger ¶ added in v1.14.0
func NewStringLogger(loggerSource string) (loggers *StringLoggers, err error)
NewStringLogger creates a logger to a string builder. All messages (whether they are output or error) are merged together.
func (*StringLoggers) Check ¶
func (l *StringLoggers) Check() error
func (*StringLoggers) GetLogContent ¶
func (l *StringLoggers) GetLogContent() string
type StringWriter ¶
type StringWriter struct { io.WriteCloser Logs strings.Builder // contains filtered or unexported fields }
func (*StringWriter) Close ¶
func (w *StringWriter) Close() (err error)
func (*StringWriter) GetFullContent ¶
func (w *StringWriter) GetFullContent() string
type WriterWithSource ¶
type WriterWithSource interface { io.WriteCloser SetSource(source string) error }
func NewDiodeWriterForSlowWriter ¶
func NewDiodeWriterForSlowWriter(slowWriter WriterWithSource, ringBufferSize int, pollInterval time.Duration, droppedMessagesLogger Loggers) WriterWithSource