logs

package
v1.62.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 24, 2024 License: Apache-2.0 Imports: 22 Imported by: 2

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

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

Package logs defines loggers for use in projects.

Index

Constants

View Source
const (
	KeyLogSource    = "source"
	KeyLoggerSource = "logger-source"
)

Variables

This section is empty.

Functions

func GetLogrLoggerFromContext added in v1.37.0

func GetLogrLoggerFromContext(ctx context.Context) (logger logr.Logger, err error)

GetLogrLoggerFromContext gets a logger from a context, unless it does not exist then it returns an ErrNoLogger

func NewErrorWriterFromLoggers added in v1.36.0

func NewErrorWriterFromLoggers(l Loggers) (w io.Writer, err error)

NewErrorWriterFromLoggers returns a io.Writer from a Loggers by only returning ERROR messages

func NewHclogWrapper added in v1.36.0

func NewHclogWrapper(loggers Loggers) (hclogL hclog.Logger, err error)

NewHclogWrapper returns an hclog logger from a Loggers logger

func NewInfoWriterFromLoggers added in v1.36.0

func NewInfoWriterFromLoggers(l Loggers) (w io.Writer, err error)

NewInfoWriterFromLoggers returns a io.Writer from a Loggers by only returning INFO messages

func NewLogrLoggerFromLoggers added in v1.14.0

func NewLogrLoggerFromLoggers(loggers Loggers) logr.Logger

NewLogrLoggerFromLoggers converts loggers into a logr.Logger

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

func (*DiodeWriter) Write

func (w *DiodeWriter) Write(p []byte) (n int, err error)

type GenericLoggers

type GenericLoggers struct {
	Output *log.Logger
	Error  *log.Logger
}

func (*GenericLoggers) Check

func (l *GenericLoggers) Check() error

func (*GenericLoggers) Close

func (l *GenericLoggers) Close() error

Close closes the logger

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) Close

func (l *JSONLoggers) Close() error

Close closes the logger

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 CreateFileLogger(logFile string, loggerSource string) (loggers Loggers, err error)

CreateFileLogger creates a logger to a file

Deprecated: Use NewFileLogger instead

func CreateStdLogger deprecated

func CreateStdLogger(loggerSource string) (loggers Loggers, err error)

CreateStdLogger creates a logger to standard output/error

Deprecated: use NewStdLogger instead

func NewAsynchronousLoggers

func NewAsynchronousLoggers(slowOutputWriter WriterWithSource, slowErrorWriter WriterWithSource, ringBufferSize int, pollInterval time.Duration, loggerSource string, source string, droppedMessagesLogger Loggers) (loggers Loggers, err error)

func NewAsynchronousStdLogger

func NewAsynchronousStdLogger(loggerSource string, ringBufferSize int, pollInterval time.Duration, source string) (loggers Loggers, err error)

func NewFileLogger added in v1.14.0

func NewFileLogger(logFile string, loggerSource string) (loggers Loggers, err error)

NewFileLogger creates a logger to a file

func NewHclogLogger added in v1.35.0

func NewHclogLogger(hclogL hclog.Logger, loggerSource string) (loggers Loggers, err error)

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

func NewLogrLogger(logrImpl logr.Logger, loggerSource string) (Loggers, error)

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

func NewLogrusLogger(logrusL *logrus.Logger, loggerSource string) (loggers Loggers, err error)

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 NewNoopLogger(loggerSource string) (loggers Loggers, err error)

func NewQuietLogger added in v1.52.0

func NewQuietLogger(loggers Loggers) (Loggers, error)

NewQuietLogger returns a quiet logger which only logs errors.

func NewSlogLogger added in v1.45.0

func NewSlogLogger(slogL *slog.Logger, loggerSource string) (loggers Loggers, err error)

NewSlogLogger returns a logger which uses slog logger (andard library package )

func NewStdLogger added in v1.14.0

func NewStdLogger(loggerSource string) (loggers Loggers, err error)

NewStdLogger creates a logger to standard output/error

func NewZapLogger added in v1.29.0

func NewZapLogger(zapL *zap.Logger, loggerSource string) (loggers Loggers, err error)

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

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)

func (*MultipleWritersWithSource) Write

func (w *MultipleWritersWithSource) Write(p []byte) (n int, 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

func (*StdErrWriter) Write

func (w *StdErrWriter) Write(p []byte) (n int, err 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.

type StdWriter

type StdWriter struct {
	WriterWithSource
}

func (*StdWriter) Close

func (w *StdWriter) Close() error

func (*StdWriter) SetSource

func (w *StdWriter) SetSource(source string) error

func (*StdWriter) Write

func (w *StdWriter) Write(p []byte) (n int, err error)

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) Close

func (l *StringLoggers) Close() (err error)

Close closes the logger

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

func (*StringWriter) Write

func (w *StringWriter) Write(p []byte) (n int, err error)

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

Directories

Path Synopsis
Package logrimp defines some common logr implementation
Package logrimp defines some common logr implementation

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL