in registry/storage/driver/s3-aws/common/parser.go [288:351]
func ParseLogLevelParamV2(logger dcontext.Logger, param any) v2_aws.ClientLogMode {
if param == nil {
logger.Debugf("S3 logging level is not set, defaulting to %q", LogLevelOff)
// aws sdk v2 does not have a constant for this:
return v2_aws.ClientLogMode(0)
}
if ll, ok := param.(v2_aws.ClientLogMode); ok {
return ll
}
var res v2_aws.ClientLogMode
var logLevelsSet []string
for _, v := range strings.Split(strings.ToLower(param.(string)), ",") {
switch v {
// LogLevelOff in the list of loglevels overrides all other log levels
// and disables logging
case LogLevelOff:
logger.Debugf("S3 logging level set to %q", LogLevelOff)
// aws sdk v2 does not have a constant for this:
return v2_aws.ClientLogMode(0)
case LogSigning:
res |= v2_aws.LogSigning
logLevelsSet = append(logLevelsSet, LogSigning)
case LogRetries:
res |= v2_aws.LogRetries
logLevelsSet = append(logLevelsSet, LogRetries)
case LogRequest:
res |= v2_aws.LogRequest
logLevelsSet = append(logLevelsSet, LogRequest)
case LogRequestWithBody:
res |= v2_aws.LogRequestWithBody
logLevelsSet = append(logLevelsSet, LogRequestWithBody)
case LogResponse:
res |= v2_aws.LogResponse
logLevelsSet = append(logLevelsSet, LogResponse)
case LogResponseWithBody:
res |= v2_aws.LogResponseWithBody
logLevelsSet = append(logLevelsSet, LogResponseWithBody)
case LogDeprecatedUsage:
res |= v2_aws.LogDeprecatedUsage
logLevelsSet = append(logLevelsSet, LogDeprecatedUsage)
case LogRequestEventMessage:
res |= v2_aws.LogRequestEventMessage
logLevelsSet = append(logLevelsSet, LogRequestEventMessage)
case LogResponseEventMessage:
res |= v2_aws.LogResponseEventMessage
logLevelsSet = append(logLevelsSet, LogResponseEventMessage)
// Check for v1 log levels that shouldn't be used with v2
case LogLevelDebug, LogLevelDebugWithSigning, LogLevelDebugWithHTTPBody,
LogLevelDebugWithRequestRetries, LogLevelDebugWithRequestErrors,
LogLevelDebugWithEventStreamBody:
logger.Warnf("S3 driver v1 log level %q has been passed to S3 driver v2. Ignoring. Please adjust your configuration", v)
default:
logger.Warnf("unknown loglevel %q, S3 logging level set to %q", param, LogLevelOff)
return v2_aws.ClientLogMode(0)
}
}
logger.Infof("S3 logging level set to %q", strings.Join(logLevelsSet, ","))
return res
}