Documentation ¶
Overview ¶
Copyright 2018 the Velero contributors.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2018 the Velero contributors.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Index ¶
- Constants
- func DefaultHooks(merge bool) []logrus.Hook
- func DefaultLogger(level logrus.Level, format Format) *logrus.Logger
- func DefaultMergeLogger(level logrus.Level, format Format) *logrus.Logger
- type DualModeLogger
- type ErrorLocationHook
- type Format
- type FormatFlag
- type HcLogLevelHook
- type LevelFlag
- type LocationInfo
- type LogHook
- type LogLocationHook
- type MergeHook
Constants ¶
const ( ListeningLevel = logrus.ErrorLevel ListeningMessage = "merge-log-57847fd0-0c7c-48e3-b5f7-984b293d8376" LogSourceKey = "log-source" )
Variables ¶
This section is empty.
Functions ¶
func DefaultHooks ¶
DefaultHooks returns a slice of the default logrus hooks to be used by a logger.
func DefaultLogger ¶
DefaultLogger returns a Logger with the default properties and hooks. The desired output format is passed as a LogFormat Enum.
Types ¶
type DualModeLogger ¶
type DualModeLogger interface { logrus.FieldLogger // DoneForPersist stops outputting logs to the persist file DoneForPersist(log logrus.FieldLogger) // GetPersistFile moves the persist file pointer to beginning and returns it GetPersistFile() (*os.File, error) // Dispose closes the temp file pointer and removes the file Dispose(log logrus.FieldLogger) }
DualModeLogger is a thread safe logger interface to write logs to dual targets, one of which is a persist file, so that the log could be further transferred.
func NewTempFileLogger ¶
func NewTempFileLogger(logLevel logrus.Level, logFormat Format, hook *LogHook, fields logrus.Fields) (DualModeLogger, error)
NewTempFileLogger creates a DualModeLogger instance that writes logs to both Stdout and a file in the temp folder.
type ErrorLocationHook ¶
type ErrorLocationHook struct{}
ErrorLocationHook is a logrus hook that attaches error location information to log entries if an error is being logged and it has stack-trace information (i.e. if it originates from or is wrapped by github.com/pkg/errors, or if it implements the errorLocationer interface, like errors returned from plugins typically do).
func (*ErrorLocationHook) Levels ¶
func (h *ErrorLocationHook) Levels() []logrus.Level
type Format ¶
type Format string
Format is a string representation of the desired output format for logs
type FormatFlag ¶
FormatFlag is a command-line flag for setting the logrus log format.
func NewFormatFlag ¶
func NewFormatFlag() *FormatFlag
NewFormatFlag constructs a new log level flag.
func (*FormatFlag) Parse ¶
func (f *FormatFlag) Parse() Format
Parse returns the flag's value as a Format.
type HcLogLevelHook ¶
type HcLogLevelHook struct{}
HcLogLevelHook adds an hclog-compatible field ("@level") containing the log level. Note that if you use this, you SHOULD NOT use logrus.JSONFormatter's FieldMap to set the level key to "@level" because that will result in the hclog-compatible info written here being overwritten.
func (*HcLogLevelHook) Levels ¶
func (h *HcLogLevelHook) Levels() []logrus.Level
type LevelFlag ¶
LevelFlag is a command-line flag for setting the logrus log level.
func LogLevelFlag ¶
LogLevelFlag constructs a new log level flag.
type LocationInfo ¶
LocationInfo specifies the location of a line of code.
func GetFrameLocationInfo ¶
func GetFrameLocationInfo(frame errors.Frame) LocationInfo
GetFrameLocationInfo returns the location of a frame.
type LogHook ¶
type LogHook struct {
// contains filtered or unexported fields
}
LogHook is a logrus hook that counts the number of log statements that have been written at each logrus level. It also maintains log entries at each logrus level in result structure.
func NewLogHook ¶
func NewLogHook() *LogHook
NewLogHook returns a pointer to an initialized LogHook.
func (*LogHook) GetCount ¶
GetCount returns the number of log statements that have been written at the specific level provided.
func (*LogHook) GetEntries ¶
GetEntries returns the log statements that have been written at the specific level provided.
type LogLocationHook ¶
type LogLocationHook struct {
// contains filtered or unexported fields
}
LogLocationHook is a logrus hook that attaches location information to log entries, i.e. the file and line number of the logrus log call. This hook is designed for use in both the Velero server and Velero plugin implementations. When triggered within a plugin, a marker field will be set on the log entry indicating that the location came from a plugin. The Velero server instance will not overwrite location information if it sees this marker.
func (*LogLocationHook) Levels ¶
func (h *LogLocationHook) Levels() []logrus.Level
func (*LogLocationHook) WithLoggerName ¶
func (h *LogLocationHook) WithLoggerName(name string) *LogLocationHook
WithLoggerName gives the hook a name to use when setting the marker field on a log entry indicating the location has been recorded by a plugin. This should only be used when setting up a hook for a logger used in a plugin.
type MergeHook ¶
type MergeHook struct { }
MergeHook is used to redirect a batch of logs to another logger atomically. It hooks a log with ListeningMessage message, once the message is hit it replaces the logger's output to HookWriter so that HookWriter retrieves the logs from a file indicated by LogSourceKey field.