mirror of
https://github.com/gravitational/teleport
synced 2024-10-20 17:23:22 +00:00
Whenever teleport was started with -d flag, output target was always overwritten to stderr. This commit makes sure that target supplied in the configuration is not overwritten even in case when -d flag is set.
This commit is contained in:
parent
f4635de5c2
commit
6bae91466f
|
@ -307,6 +307,9 @@ const (
|
|||
|
||||
// HumanDateFormatMilli is a human readable date formatting with milliseconds
|
||||
HumanDateFormatMilli = "Jan _2 15:04:05.000 UTC"
|
||||
|
||||
// DebugLevel is a debug logging level name
|
||||
DebugLevel = "debug"
|
||||
)
|
||||
|
||||
// Component generates "component:subcomponent1:subcomponent2" strings used
|
||||
|
|
|
@ -204,7 +204,11 @@ func ApplyFileConfig(fc *FileConfig, cfg *service.Config) error {
|
|||
case "stdout", "out", "1":
|
||||
log.SetOutput(os.Stdout)
|
||||
case teleport.Syslog:
|
||||
utils.SwitchLoggingtoSyslog()
|
||||
err := utils.SwitchLoggingtoSyslog()
|
||||
if err != nil {
|
||||
// this error will go to stderr
|
||||
log.Errorf("Failed to switch logging to syslog: %v.", err)
|
||||
}
|
||||
default:
|
||||
// assume it's a file path:
|
||||
logFile, err := os.Create(fc.Logger.Output)
|
||||
|
@ -220,14 +224,13 @@ func ApplyFileConfig(fc *FileConfig, cfg *service.Config) error {
|
|||
log.SetLevel(log.InfoLevel)
|
||||
case "err", "error":
|
||||
log.SetLevel(log.ErrorLevel)
|
||||
case "debug":
|
||||
case teleport.DebugLevel:
|
||||
log.SetLevel(log.DebugLevel)
|
||||
case "warn", "warning":
|
||||
log.SetLevel(log.WarnLevel)
|
||||
default:
|
||||
return trace.BadParameter("unsupported logger severity: '%v'", fc.Logger.Severity)
|
||||
}
|
||||
|
||||
// apply cache policy for node and proxy
|
||||
cachePolicy, err := fc.CachePolicy.Parse()
|
||||
if err != nil {
|
||||
|
@ -808,6 +811,12 @@ func Configure(clf *CommandLineFlags, cfg *service.Config) error {
|
|||
return trace.Wrap(err)
|
||||
}
|
||||
}
|
||||
|
||||
// apply command line --debug flag to override logger severity
|
||||
if clf.Debug {
|
||||
fileConf.Logger.Severity = teleport.DebugLevel
|
||||
}
|
||||
|
||||
if err = ApplyFileConfig(fileConf, cfg); err != nil {
|
||||
return trace.Wrap(err)
|
||||
}
|
||||
|
@ -826,10 +835,9 @@ func Configure(clf *CommandLineFlags, cfg *service.Config) error {
|
|||
cfg.Proxy.DisableTLS = clf.DisableTLS
|
||||
}
|
||||
|
||||
// apply --debug flag:
|
||||
// apply --debug flag to config:
|
||||
if clf.Debug {
|
||||
cfg.Console = ioutil.Discard
|
||||
utils.InitLogger(utils.LoggingForDaemon, log.DebugLevel)
|
||||
cfg.Debug = clf.Debug
|
||||
}
|
||||
|
||||
|
|
|
@ -23,21 +23,23 @@ import (
|
|||
"log/syslog"
|
||||
"os"
|
||||
|
||||
"github.com/gravitational/trace"
|
||||
log "github.com/sirupsen/logrus"
|
||||
logrusSyslog "github.com/sirupsen/logrus/hooks/syslog"
|
||||
)
|
||||
|
||||
// SwitchLoggingtoSyslog tells the logger to send the output to syslog. This
|
||||
// code is behind a build flag because Windows does not support syslog.
|
||||
func SwitchLoggingtoSyslog() {
|
||||
func SwitchLoggingtoSyslog() error {
|
||||
log.StandardLogger().SetHooks(make(log.LevelHooks))
|
||||
hook, err := logrusSyslog.NewSyslogHook("", "", syslog.LOG_WARNING, "")
|
||||
if err != nil {
|
||||
// syslog not available
|
||||
// syslog is not available
|
||||
log.SetOutput(os.Stderr)
|
||||
} else {
|
||||
// ... and disable stderr:
|
||||
log.AddHook(hook)
|
||||
log.SetOutput(ioutil.Discard)
|
||||
return trace.Wrap(err)
|
||||
}
|
||||
log.AddHook(hook)
|
||||
// ... and disable stderr:
|
||||
log.SetOutput(ioutil.Discard)
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue