Documentation ¶
Overview ¶
Package logger provides a logger that logs to Google Cloud Logging. It's a thin wrapper around golang/cloud/logging package.
Index ¶
- Constants
- Variables
- type Logger
- func (l *Logger) Close() error
- func (l *Logger) Critical(payload ...string)
- func (l *Logger) Criticalf(format string, args ...interface{})
- func (l *Logger) Debug(payload ...string)
- func (l *Logger) Debugf(format string, args ...interface{})
- func (l *Logger) EnableStackdriverLogging(ctx context.Context) error
- func (l *Logger) Error(payload ...string)
- func (l *Logger) Errorf(format string, args ...interface{})
- func (l *Logger) Info(payload ...string)
- func (l *Logger) Infof(format string, args ...interface{})
- func (l *Logger) Warning(payload ...string)
- func (l *Logger) Warningf(format string, args ...interface{})
Constants ¶
const ( // MaxLogEntrySize Max size of each log entry (100 KB) // This limit helps avoid creating very large log lines in case someone // accidentally creates a large EventMetric, which in turn is possible due to // unbounded nature of "map" metric where keys are created on demand. // // TODO(manugarg): We can possibly get rid of this check now as the code that // could cause a large map metric has been fixed now. Earlier, cloudprober's // HTTP server used to respond to all URLs and used to record access to those // URLs as a "map" metric. Now, it responds only to pre-configured URLs. MaxLogEntrySize = 102400 )
Variables ¶
var EnvVars = struct { DisableCloudLogging, DebugLog string }{ "CLOUDPROBER_DISABLE_CLOUD_LOGGING", "CLOUDPROBER_DEBUG_LOG", }
EnvVars defines environment variables that can be used to modify the logging behavior.
var ( // LogPrefixEnvVar environment variable is used to determine the stackdriver // log name prefix. Default prefix is "cloudprober". LogPrefixEnvVar = "CLOUDPROBER_LOG_PREFIX" )
Functions ¶
This section is empty.
Types ¶
type Logger ¶
type Logger struct {
// contains filtered or unexported fields
}
Logger implements a logger that logs messages to Google Cloud Logging. It provides a suite of methods where each method corresponds to a specific logging.Level, e.g. Error(paylod interface{}). Each method takes a payload that has to either be a JSON-encodable object, a string or a []byte slice (all other types of payload will result in error).
It falls back to logging through the traditional logger if:
- Not running on GCE,
- Logging client is uninitialized (e.g. for testing),
- Logging to cloud fails for some reason.
Logger{} is a valid object that will log through the traditional logger.
func NewCloudproberLog ¶ added in v0.10.2
NewCloudproberLog is a convenient wrapper around New that sets context to context.Background and attaches cloudprober prefix to log names.
func (*Logger) Close ¶ added in v0.10.7
Close closes the cloud logging client if it exists. This flushes the buffer and should be called before exiting the program to ensure all logs are persisted.
func (*Logger) Critical ¶
Critical logs messages with logging level set to "Critical" and exits the process with error status. The buffer is flushed before exiting.
func (*Logger) Criticalf ¶
Criticalf logs formatted text messages with logging level "Critical" and exits the process with error status. The buffer is flushed before exiting.
func (*Logger) EnableStackdriverLogging ¶ added in v0.10.7
EnableStackdriverLogging enables logging to stackdriver.