| package logger | |
| var externalValidators []LogOptValidator | |
| // RegisterExternalValidator adds the validator to the list of external validators. | |
| // External validators are used by packages outside this package that need to add their own validation logic. | |
| // This should only be called on package initialization. | |
| func RegisterExternalValidator(v LogOptValidator) { | |
| externalValidators = append(externalValidators, v) | |
| } | |
| // AddBuiltinLogOpts updates the list of built-in log opts. This allows other packages to supplement additional log options | |
| // without having to register an actual log driver. This is used by things that are more proxy log drivers and should | |
| // not be exposed as a usable log driver to the API. | |
| // This should only be called on package initialization. | |
| func AddBuiltinLogOpts(opts map[string]bool) { | |
| for k, v := range opts { | |
| builtInLogOpts[k] = v | |
| } | |
| } | |
| func validateExternal(cfg map[string]string) error { | |
| for _, v := range externalValidators { | |
| if err := v(cfg); err != nil { | |
| return err | |
| } | |
| } | |
| return nil | |
| } |