daemon: strongly type containerd log.OutputFormat
This type was introduced in
0a79e67e4f
Make use of it throughout our log-format handling code, and convert back
to a string before we pass it to the containerd client.
Signed-off-by: Bjorn Neergaard <bjorn.neergaard@docker.com>
This commit is contained in:
parent
0d9da7367d
commit
0e80073e01
4 changed files with 16 additions and 12 deletions
|
@ -516,7 +516,7 @@ func loadDaemonCliConfig(opts *daemonOptions) (*config.Config, error) {
|
||||||
conf.Debug = opts.Debug
|
conf.Debug = opts.Debug
|
||||||
conf.Hosts = opts.Hosts
|
conf.Hosts = opts.Hosts
|
||||||
conf.LogLevel = opts.LogLevel
|
conf.LogLevel = opts.LogLevel
|
||||||
conf.LogFormat = opts.LogFormat
|
conf.LogFormat = log.OutputFormat(opts.LogFormat)
|
||||||
|
|
||||||
if flags.Changed(FlagTLS) {
|
if flags.Changed(FlagTLS) {
|
||||||
conf.TLS = &opts.TLS
|
conf.TLS = &opts.TLS
|
||||||
|
@ -914,7 +914,7 @@ func systemContainerdRunning(honorXDG bool) (string, bool, error) {
|
||||||
// configureDaemonLogs sets the logging level and formatting. It expects
|
// configureDaemonLogs sets the logging level and formatting. It expects
|
||||||
// the passed configuration to already be validated, and ignores invalid options.
|
// the passed configuration to already be validated, and ignores invalid options.
|
||||||
func configureDaemonLogs(conf *config.Config) {
|
func configureDaemonLogs(conf *config.Config) {
|
||||||
switch log.OutputFormat(conf.LogFormat) {
|
switch conf.LogFormat {
|
||||||
case log.JSONFormat:
|
case log.JSONFormat:
|
||||||
if err := log.SetFormat(log.JSONFormat); err != nil {
|
if err := log.SetFormat(log.JSONFormat); err != nil {
|
||||||
panic(err.Error())
|
panic(err.Error())
|
||||||
|
|
|
@ -164,7 +164,7 @@ func TestLoadDaemonCliConfigWithLogFormat(t *testing.T) {
|
||||||
loadedConfig, err := loadDaemonCliConfig(opts)
|
loadedConfig, err := loadDaemonCliConfig(opts)
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
assert.Assert(t, loadedConfig != nil)
|
assert.Assert(t, loadedConfig != nil)
|
||||||
assert.Check(t, is.Equal(log.JSONFormat, log.OutputFormat(loadedConfig.LogFormat)))
|
assert.Check(t, is.Equal(log.JSONFormat, loadedConfig.LogFormat))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestLoadDaemonCliConfigWithInvalidLogFormat(t *testing.T) {
|
func TestLoadDaemonCliConfigWithInvalidLogFormat(t *testing.T) {
|
||||||
|
|
|
@ -180,12 +180,12 @@ type CommonConfig struct {
|
||||||
// to stop when daemon is being shutdown
|
// to stop when daemon is being shutdown
|
||||||
ShutdownTimeout int `json:"shutdown-timeout,omitempty"`
|
ShutdownTimeout int `json:"shutdown-timeout,omitempty"`
|
||||||
|
|
||||||
Debug bool `json:"debug,omitempty"`
|
Debug bool `json:"debug,omitempty"`
|
||||||
Hosts []string `json:"hosts,omitempty"`
|
Hosts []string `json:"hosts,omitempty"`
|
||||||
LogLevel string `json:"log-level,omitempty"`
|
LogLevel string `json:"log-level,omitempty"`
|
||||||
LogFormat string `json:"log-format,omitempty"`
|
LogFormat log.OutputFormat `json:"log-format,omitempty"`
|
||||||
TLS *bool `json:"tls,omitempty"`
|
TLS *bool `json:"tls,omitempty"`
|
||||||
TLSVerify *bool `json:"tlsverify,omitempty"`
|
TLSVerify *bool `json:"tlsverify,omitempty"`
|
||||||
|
|
||||||
// Embedded structs that allow config
|
// Embedded structs that allow config
|
||||||
// deserialization without the full struct.
|
// deserialization without the full struct.
|
||||||
|
@ -597,7 +597,7 @@ func Validate(config *Config) error {
|
||||||
|
|
||||||
// validate log-format
|
// validate log-format
|
||||||
if logFormat := config.LogFormat; logFormat != "" {
|
if logFormat := config.LogFormat; logFormat != "" {
|
||||||
switch log.OutputFormat(logFormat) {
|
switch logFormat {
|
||||||
case log.TextFormat, log.JSONFormat:
|
case log.TextFormat, log.JSONFormat:
|
||||||
// These are valid
|
// These are valid
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
package supervisor // import "github.com/docker/docker/libcontainerd/supervisor"
|
package supervisor // import "github.com/docker/docker/libcontainerd/supervisor"
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/containerd/containerd/log"
|
||||||
|
)
|
||||||
|
|
||||||
// WithLogLevel defines which log level to start containerd with.
|
// WithLogLevel defines which log level to start containerd with.
|
||||||
func WithLogLevel(lvl string) DaemonOpt {
|
func WithLogLevel(lvl string) DaemonOpt {
|
||||||
return func(r *remote) error {
|
return func(r *remote) error {
|
||||||
|
@ -15,9 +19,9 @@ func WithLogLevel(lvl string) DaemonOpt {
|
||||||
|
|
||||||
// WithLogFormat defines the containerd log format.
|
// WithLogFormat defines the containerd log format.
|
||||||
// This only makes sense if WithStartDaemon() was set to true.
|
// This only makes sense if WithStartDaemon() was set to true.
|
||||||
func WithLogFormat(format string) DaemonOpt {
|
func WithLogFormat(format log.OutputFormat) DaemonOpt {
|
||||||
return func(r *remote) error {
|
return func(r *remote) error {
|
||||||
r.Debug.Format = format
|
r.Debug.Format = string(format)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue