Remove deprecated driver specific log tags

Since 1.9, driver specific log tag options
`syslog-tag`
`gelf-tag`
`fluentd-tag`
have been deprecated in favor of the generic tag
option which is standard across different logging
drivers.

This fix removed the deprecated driver specific
log tag options of `syslog-tag`, `gelf-tag`,
`fluentd-tag` for 1.12 and updated the docs.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
This commit is contained in:
Yong Tang 2016-05-09 19:04:09 -07:00
Родитель e16753ce19
Коммит a20b02b915
7 изменённых файлов: 12 добавлений и 58 удалений

Просмотреть файл

@ -57,8 +57,8 @@ func init() {
}
// New creates a fluentd logger using the configuration passed in on
// the context. Supported context configuration variables are
// fluentd-address & fluentd-tag.
// the context. The supported context configuration variable is
// fluentd-address.
func New(ctx logger.Context) (logger.Logger, error) {
host, port, err := parseAddress(ctx.Config[addressKey])
if err != nil {
@ -154,12 +154,11 @@ func (f *fluentd) Name() string {
return name
}
// ValidateLogOpt looks for fluentd specific log options fluentd-address & fluentd-tag.
// ValidateLogOpt looks for fluentd specific log option fluentd-address.
func ValidateLogOpt(cfg map[string]string) error {
for key := range cfg {
switch key {
case "env":
case "fluentd-tag":
case "labels":
case "tag":
case addressKey:

Просмотреть файл

@ -40,8 +40,7 @@ func init() {
}
// New creates a gelf logger using the configuration passed in on the
// context. Supported context configuration variables are
// gelf-address, & gelf-tag.
// context. The supported context configuration variable is gelf-address.
func New(ctx logger.Context) (logger.Logger, error) {
// parse gelf address
address, err := parseAddress(ctx.Config["gelf-address"])
@ -153,13 +152,11 @@ func (s *gelfLogger) Name() string {
return name
}
// ValidateLogOpt looks for gelf specific log options gelf-address, &
// gelf-tag.
// ValidateLogOpt looks for gelf specific log option gelf-address.
func ValidateLogOpt(cfg map[string]string) error {
for key, val := range cfg {
switch key {
case "gelf-address":
case "gelf-tag":
case "tag":
case "labels":
case "env":

Просмотреть файл

@ -2,9 +2,7 @@ package loggerutils
import (
"bytes"
"fmt"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/daemon/logger"
"github.com/docker/docker/utils/templates"
)
@ -12,7 +10,10 @@ import (
// ParseLogTag generates a context aware tag for consistency across different
// log drivers based on the context of the running container.
func ParseLogTag(ctx logger.Context, defaultTemplate string) (string, error) {
tagTemplate := lookupTagTemplate(ctx, defaultTemplate)
tagTemplate := ctx.Config["tag"]
if tagTemplate == "" {
tagTemplate = defaultTemplate
}
tmpl, err := templates.NewParse("log-tag", tagTemplate)
if err != nil {
@ -25,22 +26,3 @@ func ParseLogTag(ctx logger.Context, defaultTemplate string) (string, error) {
return buf.String(), nil
}
func lookupTagTemplate(ctx logger.Context, defaultTemplate string) string {
tagTemplate := ctx.Config["tag"]
deprecatedConfigs := []string{"syslog-tag", "gelf-tag", "fluentd-tag"}
for i := 0; tagTemplate == "" && i < len(deprecatedConfigs); i++ {
cfg := deprecatedConfigs[i]
if ctx.Config[cfg] != "" {
tagTemplate = ctx.Config[cfg]
logrus.Warn(fmt.Sprintf("Using log tag from deprecated log-opt '%s'. Please use: --log-opt tag=\"%s\"", cfg, tagTemplate))
}
}
if tagTemplate == "" {
tagTemplate = defaultTemplate
}
return tagTemplate
}

Просмотреть файл

@ -18,24 +18,6 @@ func TestParseLogTag(t *testing.T) {
assertTag(t, e, tag, "test-image/test-container/container-ab")
}
func TestParseLogTagSyslogTag(t *testing.T) {
ctx := buildContext(map[string]string{"syslog-tag": "{{.ImageName}}/{{.Name}}/{{.ID}}"})
tag, e := ParseLogTag(ctx, "{{.ID}}")
assertTag(t, e, tag, "test-image/test-container/container-ab")
}
func TestParseLogTagGelfTag(t *testing.T) {
ctx := buildContext(map[string]string{"gelf-tag": "{{.ImageName}}/{{.Name}}/{{.ID}}"})
tag, e := ParseLogTag(ctx, "{{.ID}}")
assertTag(t, e, tag, "test-image/test-container/container-ab")
}
func TestParseLogTagFluentdTag(t *testing.T) {
ctx := buildContext(map[string]string{"fluentd-tag": "{{.ImageName}}/{{.Name}}/{{.ID}}"})
tag, e := ParseLogTag(ctx, "{{.ID}}")
assertTag(t, e, tag, "test-image/test-container/container-ab")
}
// Helpers
func buildContext(cfg map[string]string) logger.Context {

Просмотреть файл

@ -89,7 +89,7 @@ func rfc5424microformatterWithAppNameAsTag(p syslog.Priority, hostname, tag, con
// New creates a syslog logger using the configuration passed in on
// the context. Supported context configuration variables are
// syslog-address, syslog-facility, syslog-format, syslog-tag.
// syslog-address, syslog-facility, syslog-format.
func New(ctx logger.Context) (logger.Logger, error) {
tag, err := loggerutils.ParseLogTag(ctx, "{{.ID}}")
if err != nil {
@ -184,7 +184,7 @@ func parseAddress(address string) (string, string, error) {
}
// ValidateLogOpt looks for syslog specific log options
// syslog-address, syslog-facility, & syslog-tag.
// syslog-address, syslog-facility.
func ValidateLogOpt(cfg map[string]string) error {
for key := range cfg {
switch key {
@ -192,7 +192,6 @@ func ValidateLogOpt(cfg map[string]string) error {
case "labels":
case "syslog-address":
case "syslog-facility":
case "syslog-tag":
case "syslog-tls-ca-cert":
case "syslog-tls-cert":
case "syslog-tls-key":

Просмотреть файл

@ -64,8 +64,3 @@ Apr 1 15:22:17 ip-10-27-39-73 docker/logtester.1234[45499]: + exec app
Apr 1 15:22:17 ip-10-27-39-73 docker/logtester.1234[45499]: 2016-04-01 15:22:17.075416751 +0000 UTC stderr msg: 1
```
>**Note**:The driver specific log options `syslog-tag`, `fluentd-tag` and
>`gelf-tag` still work for backwards compatibility. However, going forward you
>should standardize on using the generic `tag` log option instead.

Просмотреть файл

@ -73,7 +73,7 @@ variants:
### Driver Specific Log Tags
**Deprecated In Release: v1.9**
**Target For Removal In Release: v1.11**
**Removed In Release: v1.12**
Log tags are now generated in a standard way across different logging drivers.
Because of which, the driver specific log tag options `syslog-tag`, `gelf-tag` and