in commands/multi.go [430:476]
func (mr *RunCommand) reloadUsageLogger() {
if mr.usageLogger != nil {
mr.log().Debug("Closing existing usage logger storage")
err := mr.usageLogger.Close()
if err != nil {
mr.log().WithError(err).Error("Failed to close existing usage logger storage")
}
}
if mr.config.Experimental == nil || !mr.config.Experimental.UsageLogger.Enabled {
mr.usageLogger = nil
mr.log().Info("Usage logger disabled")
return
}
ulConfig := mr.config.Experimental.UsageLogger
logDir := ulConfig.LogDir
if logDir == "" {
logDir = filepath.Join(filepath.Dir(mr.ConfigFile), "usage-log")
}
options := []logrotate.Option{
logrotate.WithLogDirectory(logDir),
}
storageOptions := []usage_log.Option{
usage_log.WithLabels(ulConfig.Labels),
}
logFields := logrus.Fields{
"log_dir": logDir,
}
if ulConfig.MaxBackupFiles != nil && *ulConfig.MaxBackupFiles > 0 {
options = append(options, logrotate.WithMaxBackupFiles(*ulConfig.MaxBackupFiles))
logFields["max_backup_files"] = *ulConfig.MaxBackupFiles
}
if ulConfig.MaxRotationAge != nil && ulConfig.MaxRotationAge.Nanoseconds() > 0 {
options = append(options, logrotate.WithMaxRotationAge(*ulConfig.MaxRotationAge))
logFields["max_rotation_age"] = *ulConfig.MaxRotationAge
}
mr.log().WithFields(logFields).Info("Usage logger enabled")
mr.usageLogger = usage_log.NewStorage(logrotate.New(options...), storageOptions...)
}