mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-07-01 09:42:45 +00:00
logging: Allow SetLogger to be called multiple times
Now that the `SetLogger()` functions accept a `logrus.Entry`, they can access the fields that have already been set for the logger and re-apply them if `SetLogger()` is called multiple times. This fixes a bug whereby the logger functions -- which are necessarily called multiple times [1] -- previously ended up applying any new fields the specified logger contained, but erroneously removing any additional fields added since `SetLogger()` was last called. Partially fixes #519. -- [1] - https://github.com/kata-containers/runtime/pull/468 Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
This commit is contained in:
parent
029e7ca680
commit
58448bbcb8
@ -19,11 +19,12 @@ func init() {
|
||||
runtime.LockOSThread()
|
||||
}
|
||||
|
||||
var virtLog *logrus.Entry
|
||||
var virtLog = logrus.WithField("source", "virtcontainers")
|
||||
|
||||
// SetLogger sets the logger for virtcontainers package.
|
||||
func SetLogger(logger *logrus.Entry) {
|
||||
virtLog = logger.WithField("source", "virtcontainers")
|
||||
fields := virtLog.Data
|
||||
virtLog = logger.WithFields(fields)
|
||||
|
||||
deviceApi.SetLogger(virtLog)
|
||||
}
|
||||
|
@ -12,16 +12,17 @@ import (
|
||||
"github.com/kata-containers/runtime/virtcontainers/device/config"
|
||||
)
|
||||
|
||||
var devLogger *logrus.Entry
|
||||
var devLogger = logrus.WithField("subsystem", "device")
|
||||
|
||||
// SetLogger sets the logger for device api package.
|
||||
func SetLogger(logger *logrus.Entry) {
|
||||
devLogger = logger
|
||||
fields := devLogger.Data
|
||||
devLogger = logger.WithFields(fields)
|
||||
}
|
||||
|
||||
// DeviceLogger returns logger for device management
|
||||
func DeviceLogger() *logrus.Entry {
|
||||
return devLogger.WithField("subsystem", "device")
|
||||
return devLogger
|
||||
}
|
||||
|
||||
// DeviceReceiver is an interface used for accepting devices
|
||||
|
@ -128,14 +128,15 @@ func (config *RuntimeConfig) AddKernelParam(p vc.Param) error {
|
||||
return config.HypervisorConfig.AddKernelParam(p)
|
||||
}
|
||||
|
||||
var ociLog = logrus.FieldLogger(logrus.New())
|
||||
var ociLog = logrus.WithFields(logrus.Fields{
|
||||
"source": "virtcontainers",
|
||||
"subsystem": "oci",
|
||||
})
|
||||
|
||||
// SetLogger sets the logger for oci package.
|
||||
func SetLogger(logger *logrus.Entry) {
|
||||
ociLog = logger.WithFields(logrus.Fields{
|
||||
"source": "virtcontainers",
|
||||
"subsystem": "oci",
|
||||
})
|
||||
fields := ociLog.Data
|
||||
ociLog = logger.WithFields(fields)
|
||||
}
|
||||
|
||||
func cmdEnvs(spec CompatOCISpec, envs []vc.EnvVar) []vc.EnvVar {
|
||||
|
Loading…
Reference in New Issue
Block a user