From dfdddcfacba806bdce144aaba51568b41c7a480b Mon Sep 17 00:00:00 2001 From: Sarat Chandra Date: Mon, 11 Nov 2019 23:34:41 +0530 Subject: 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 --- logging.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'logging.go') diff --git a/logging.go b/logging.go index e809617..97c0513 100644 --- a/logging.go +++ b/logging.go @@ -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) -- cgit v1.2.3