dockerd allows the `--log-level` to be specified, but this log-level
was not forwarded to the containerd process.
This patch sets containerd's log-level to the same as dockerd if a
custom level is provided.
Now that `--log-level` is also passed to containerd, the default "info"
is removed, so that containerd's default (or the level configured in containerd.toml)
is still used if no log-level is set.
Before this change:
containerd would always be started without a log-level set (only the level that's configured in `containerd.toml`);
```
root 1014 2.5 2.1 496484 43468 pts/0 Sl+ 12:23 0:00 dockerd
root 1023 1.2 1.1 681768 23832 ? Ssl 12:23 0:00 \_ docker-containerd --config /var/run/docker/containerd/containerd.toml
```
After this change:
when running `dockerd` without options (same as current);
```
root 1014 2.5 2.1 496484 43468 pts/0 Sl+ 12:23 0:00 dockerd
root 1023 1.2 1.1 681768 23832 ? Ssl 12:23 0:00 \_ docker-containerd --config /var/run/docker/containerd/containerd.toml
```
when running `dockerd --debug`:
```
root 600 0.8 2.1 512876 43180 pts/0 Sl+ 12:20 0:00 dockerd --debug
root 608 0.6 1.1 624428 23672 ? Ssl 12:20 0:00 \_ docker-containerd --config /var/run/docker/containerd/containerd.toml --log-level debug
```
when running `dockerd --log-level=panic`
```
root 747 0.6 2.1 496548 43996 pts/0 Sl+ 12:21 0:00 dockerd --log-level=panic
root 755 0.7 1.1 550696 24100 ? Ssl 12:21 0:00 \_ docker-containerd --config /var/run/docker/containerd/containerd.toml --log-level panic
```
combining `--debug` and `--log-level` (`--debug` takes precedence):
```
root 880 2.7 2.1 634692 43336 pts/0 Sl+ 12:23 0:00 dockerd --debug --log-level=panic
root 888 1.0 1.1 616232 23652 ? Ssl 12:23 0:00 \_ docker-containerd --config /var/run/docker/containerd/containerd.toml --log-level debug
```
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
| ... | ... |
@@ -48,6 +48,8 @@ func (cli *DaemonCli) getPlatformRemoteOptions() ([]libcontainerd.RemoteOption, |
| 48 | 48 |
} |
| 49 | 49 |
if cli.Config.Debug {
|
| 50 | 50 |
opts = append(opts, libcontainerd.WithLogLevel("debug"))
|
| 51 |
+ } else if cli.Config.LogLevel != "" {
|
|
| 52 |
+ opts = append(opts, libcontainerd.WithLogLevel(cli.Config.LogLevel)) |
|
| 51 | 53 |
} |
| 52 | 54 |
if cli.Config.ContainerdAddr != "" {
|
| 53 | 55 |
opts = append(opts, libcontainerd.WithRemoteAddr(cli.Config.ContainerdAddr)) |
| ... | ... |
@@ -221,6 +221,11 @@ func (r *remote) startContainerd() error {
|
| 221 | 221 |
} |
| 222 | 222 |
|
| 223 | 223 |
args := []string{"--config", configFile}
|
| 224 |
+ |
|
| 225 |
+ if r.Debug.Level != "" {
|
|
| 226 |
+ args = append(args, "--log-level", r.Debug.Level) |
|
| 227 |
+ } |
|
| 228 |
+ |
|
| 224 | 229 |
cmd := exec.Command(binaryName, args...) |
| 225 | 230 |
// redirect containerd logs to docker logs |
| 226 | 231 |
cmd.Stdout = os.Stdout |
| ... | ... |
@@ -18,9 +18,6 @@ func (r *remote) setDefaults() {
|
| 18 | 18 |
if r.Debug.Address == "" {
|
| 19 | 19 |
r.Debug.Address = debugPipeName |
| 20 | 20 |
} |
| 21 |
- if r.Debug.Level == "" {
|
|
| 22 |
- r.Debug.Level = "info" |
|
| 23 |
- } |
|
| 24 | 21 |
if r.snapshotter == "" {
|
| 25 | 22 |
r.snapshotter = "naive" // TODO(mlaventure): switch to "windows" once implemented |
| 26 | 23 |
} |