mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
add syslog driver
Signed-off-by: wlan0 <sid@rancher.com>
This commit is contained in:
parent
cf071bb962
commit
eaecd8b1b5
8 changed files with 71 additions and 5 deletions
|
@ -83,7 +83,7 @@ func (config *Config) InstallFlags() {
|
|||
opts.LabelListVar(&config.Labels, []string{"-label"}, "Set key=value labels to the daemon")
|
||||
config.Ulimits = make(map[string]*ulimit.Ulimit)
|
||||
opts.UlimitMapVar(config.Ulimits, []string{"-default-ulimit"}, "Set default ulimits for containers")
|
||||
flag.StringVar(&config.LogConfig.Type, []string{"-log-driver"}, "json-file", "Containers logging driver(json-file/none)")
|
||||
flag.StringVar(&config.LogConfig.Type, []string{"-log-driver"}, "json-file", "Containers logging driver")
|
||||
}
|
||||
|
||||
func getDefaultNetworkMtu() int {
|
||||
|
|
|
@ -23,6 +23,7 @@ import (
|
|||
"github.com/docker/docker/daemon/execdriver"
|
||||
"github.com/docker/docker/daemon/logger"
|
||||
"github.com/docker/docker/daemon/logger/jsonfilelog"
|
||||
"github.com/docker/docker/daemon/logger/syslog"
|
||||
"github.com/docker/docker/engine"
|
||||
"github.com/docker/docker/image"
|
||||
"github.com/docker/docker/links"
|
||||
|
@ -1377,6 +1378,12 @@ func (container *Container) startLogging() error {
|
|||
return err
|
||||
}
|
||||
l = dl
|
||||
case "syslog":
|
||||
dl, err := syslog.New(container.ID[:12])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
l = dl
|
||||
case "none":
|
||||
return nil
|
||||
default:
|
||||
|
|
54
daemon/logger/syslog/syslog.go
Normal file
54
daemon/logger/syslog/syslog.go
Normal file
|
@ -0,0 +1,54 @@
|
|||
package syslog
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log/syslog"
|
||||
"os"
|
||||
"path"
|
||||
"sync"
|
||||
|
||||
"github.com/docker/docker/daemon/logger"
|
||||
)
|
||||
|
||||
type Syslog struct {
|
||||
writer *syslog.Writer
|
||||
tag string
|
||||
mu sync.Mutex
|
||||
}
|
||||
|
||||
func New(tag string) (logger.Logger, error) {
|
||||
log, err := syslog.New(syslog.LOG_USER, path.Base(os.Args[0]))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &Syslog{
|
||||
writer: log,
|
||||
tag: tag,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *Syslog) Log(msg *logger.Message) error {
|
||||
logMessage := fmt.Sprintf("%s: %s", s.tag, string(msg.Line))
|
||||
if msg.Source == "stderr" {
|
||||
if err := s.writer.Err(logMessage); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
} else {
|
||||
if err := s.writer.Info(logMessage); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *Syslog) Close() error {
|
||||
if s.writer != nil {
|
||||
return s.writer.Close()
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *Syslog) Name() string {
|
||||
return "Syslog"
|
||||
}
|
|
@ -117,7 +117,7 @@ IMAGE [COMMAND] [ARG...]
|
|||
**--lxc-conf**=[]
|
||||
(lxc exec-driver only) Add custom lxc options --lxc-conf="lxc.cgroup.cpuset.cpus = 0,1"
|
||||
|
||||
**--log-driver**="|*json-file*|*none*"
|
||||
**--log-driver**="|*json-file*|*syslog*|*none*"
|
||||
Logging driver for container. Default is defined by daemon `--log-driver` flag.
|
||||
**Warning**: `docker logs` command works only for `json-file` logging driver.
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@ which interface and port to use.
|
|||
**--lxc-conf**=[]
|
||||
(lxc exec-driver only) Add custom lxc options --lxc-conf="lxc.cgroup.cpuset.cpus = 0,1"
|
||||
|
||||
**--log-driver**="|*json-file*|*none*"
|
||||
**--log-driver**="|*json-file*|*syslog*|*none*"
|
||||
Logging driver for container. Default is defined by daemon `--log-driver` flag.
|
||||
**Warning**: `docker logs` command works only for `json-file` logging driver.
|
||||
|
||||
|
|
|
@ -89,7 +89,7 @@ unix://[/path/to/socket] to use.
|
|||
**--label**="[]"
|
||||
Set key=value labels to the daemon (displayed in `docker info`)
|
||||
|
||||
**--log-driver**="*json-file*|*none*"
|
||||
**--log-driver**="*json-file*|*syslog*|*none*"
|
||||
Container's logging driver. Default is `default`.
|
||||
**Warning**: `docker logs` command works only for `json-file` logging driver.
|
||||
|
||||
|
|
|
@ -258,7 +258,7 @@ Json Parameters:
|
|||
`Ulimits: { "Name": "nofile", "Soft": 1024, "Hard", 2048 }}`
|
||||
- **LogConfig** - Logging configuration to container, format
|
||||
`{ "Type": "<driver_name>", "Config": {"key1": "val1"}}
|
||||
Available types: `json-file`, `none`.
|
||||
Available types: `json-file`, `syslog`, `none`.
|
||||
`json-file` logging driver.
|
||||
|
||||
Query Parameters:
|
||||
|
|
|
@ -656,6 +656,11 @@ this driver.
|
|||
Default logging driver for Docker. Writes JSON messages to file. `docker logs`
|
||||
command is available only for this logging driver
|
||||
|
||||
## Logging driver: syslog
|
||||
|
||||
Syslog logging driver for Docker. Writes log messages to syslog. `docker logs`
|
||||
command is not available for this logging driver
|
||||
|
||||
## Overriding Dockerfile image defaults
|
||||
|
||||
When a developer builds an image from a [*Dockerfile*](/reference/builder)
|
||||
|
|
Loading…
Reference in a new issue