Merge pull request #22384 from yongtang/22358-log-tag-prefix

Remove `docker/` prefix from log messages tag.
This commit is contained in:
Sebastiaan van Stijn 2016-05-30 14:48:31 +02:00
commit f3a7abee81
6 changed files with 14 additions and 7 deletions

View File

@ -315,6 +315,7 @@ func (container *Container) StartLogger(cfg containertypes.LogConfig) (logger.Lo
ContainerCreated: container.Created,
ContainerEnv: container.Config.Env,
ContainerLabels: container.Config.Labels,
DaemonName: "docker",
}
// Set logging file for "json-logger"

View File

@ -20,6 +20,7 @@ type Context struct {
ContainerEnv []string
ContainerLabels map[string]string
LogPath string
DaemonName string
}
// ExtraAttributes returns the user-defined extra attributes (labels,

View File

@ -65,7 +65,7 @@ func New(ctx logger.Context) (logger.Logger, error) {
return nil, err
}
tag, err := loggerutils.ParseLogTag(ctx, "docker.{{.ID}}")
tag, err := loggerutils.ParseLogTag(ctx, "{{.DaemonName}}.{{.ID}}")
if err != nil {
return nil, err
}

View File

@ -18,6 +18,12 @@ func TestParseLogTag(t *testing.T) {
assertTag(t, e, tag, "test-image/test-container/container-ab")
}
func TestParseLogTagEmptyTag(t *testing.T) {
ctx := buildContext(map[string]string{})
tag, e := ParseLogTag(ctx, "{{.DaemonName}}/{{.ID}}")
assertTag(t, e, tag, "test-dockerd/container-ab")
}
// Helpers
func buildContext(cfg map[string]string) logger.Context {
@ -27,6 +33,7 @@ func buildContext(cfg map[string]string) logger.Context {
ContainerImageID: "image-abcdefghijklmnopqrstuvwxyz01234567890",
ContainerImageName: "test-image",
Config: cfg,
DaemonName: "test-dockerd",
}
}

View File

@ -10,7 +10,6 @@ import (
"net"
"net/url"
"os"
"path"
"strconv"
"strings"
"time"
@ -91,7 +90,7 @@ func rfc5424microformatterWithAppNameAsTag(p syslog.Priority, hostname, tag, con
// the context. Supported context configuration variables are
// syslog-address, syslog-facility, syslog-format.
func New(ctx logger.Context) (logger.Logger, error) {
tag, err := loggerutils.ParseLogTag(ctx, "{{.ID}}")
tag, err := loggerutils.ParseLogTag(ctx, "{{.DaemonName}}/{{.ID}}")
if err != nil {
return nil, err
}
@ -111,17 +110,15 @@ func New(ctx logger.Context) (logger.Logger, error) {
return nil, err
}
logTag := path.Base(os.Args[0]) + "/" + tag
var log *syslog.Writer
if proto == secureProto {
tlsConfig, tlsErr := parseTLSConfig(ctx.Config)
if tlsErr != nil {
return nil, tlsErr
}
log, err = syslog.DialWithTLSConfig(proto, address, facility, logTag, tlsConfig)
log, err = syslog.DialWithTLSConfig(proto, address, facility, tag, tlsConfig)
} else {
log, err = syslog.Dial(proto, address, facility, logTag)
log, err = syslog.Dial(proto, address, facility, tag)
}
if err != nil {

View File

@ -30,6 +30,7 @@ Docker supports some special template markup you can use when specifying a tag's
| `{{.ImageID}}` | The first 12 characters of the container's image id. |
| `{{.ImageFullID}}` | The container's full image identifier. |
| `{{.ImageName}}` | The name of the image used by the container. |
| `{{.DaemonName}}` | The name of the docker program (`docker`). |
For example, specifying a `--log-opt tag="{{.ImageName}}/{{.Name}}/{{.ID}}"` value yields `syslog` log lines like: