logging: Support placeholders in level and filename (#2872)

* Add support for placeholders in Config

Fixes #2870

* Replace placeholders only in logging config.

Placeholders in log level and filename incase of file output are replaced.

* Add Provision to filewriter module for replacing placeholders
This commit is contained in:
Sarat Chandra
2019-11-11 23:34:41 +05:30
committed by Matt Holt
parent 7ff02f37b6
commit dfdddcfacb
2 changed files with 29 additions and 2 deletions

View File

@ -280,8 +280,15 @@ type CustomLog struct {
}
func (cl *CustomLog) provision(ctx Context, logging *Logging) error {
// Replace placeholder for log level
repl := NewReplacer()
level, err := repl.ReplaceOrErr(cl.Level, true, true)
if err != nil {
return fmt.Errorf("invalid log level: %v", err)
}
// set up the log level
switch cl.Level {
switch level {
case "debug":
cl.levelEnabler = zapcore.DebugLevel
case "", "info":
@ -351,7 +358,7 @@ func (cl *CustomLog) provision(ctx Context, logging *Logging) error {
if cl.writerOpener == nil {
cl.writerOpener = StderrWriter{}
}
var err error
cl.writer, _, err = logging.openWriter(cl.writerOpener)
if err != nil {
return fmt.Errorf("opening log writer using %#v: %v", cl.writerOpener, err)