Skip to content

Commit 4f4b9fd

Browse files
authored
Merge pull request #4 from dozer111/add-psr3-compatibility
Log level now can be string or number
2 parents 1e9dc5e + 704a367 commit 4f4b9fd

File tree

3 files changed

+20
-5
lines changed

3 files changed

+20
-5
lines changed

cmd/docker-fpm-wrapper/config.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
)
1111

1212
type Config struct {
13-
LogLevel int `mapstructure:"log-level"`
13+
LogLevel string `mapstructure:"log-level"`
1414
LogEncoder string `mapstructure:"log-encoder"`
1515

1616
FpmPath string `mapstructure:"fpm"`
@@ -32,7 +32,7 @@ type Config struct {
3232
}
3333

3434
func parseCommandLineFlags() {
35-
pflag.Int8("log-level", -1, "Log level. -1 debug ")
35+
pflag.String("log-level", "-1", "Log level. -1 debug ")
3636
pflag.String("log-encoder", "auto", "Internal logging encoder")
3737

3838
pflag.StringP("fpm", "f", "", "path to php-fpm")

cmd/docker-fpm-wrapper/logger.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,13 @@ func createLoggerEncoder(eName string, encoderConfig zapcore.EncoderConfig) (zap
4949
}
5050
}
5151

52-
func createLogger(encName string, level int, output zapcore.WriteSyncer) (*zap.Logger, error) {
52+
func createLogger(encName string, level zapcore.Level, output zapcore.WriteSyncer) (*zap.Logger, error) {
5353
enc, err := createLoggerEncoder(encName, newZapEncoderConfig())
5454
if err != nil {
5555
return nil, err
5656
}
5757

58-
atomicLevel := zap.NewAtomicLevelAt(zapcore.Level(level))
58+
atomicLevel := zap.NewAtomicLevelAt(level)
5959

6060
return zap.New(zapcore.NewCore(enc, output, atomicLevel)), nil
6161
}

cmd/docker-fpm-wrapper/main.go

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"net/http"
77
"os"
88
"os/signal"
9+
"strconv"
910
"syscall"
1011

1112
"github.com/prometheus/client_golang/prometheus"
@@ -42,7 +43,21 @@ func main() {
4243
}
4344

4445
syncStderr := zapcore.Lock(os.Stderr)
45-
log, err := createLogger(cfg.LogEncoder, cfg.LogLevel, syncStderr)
46+
// cfg.LogLevel can be either int or string
47+
// example: it can be -1 or debug
48+
// try to parse it by string
49+
logLever, err := zapcore.ParseLevel(cfg.LogLevel)
50+
if err != nil {
51+
// so, the string is not correct, try to parse it as int
52+
logLeverRaw, err := strconv.Atoi(cfg.LogLevel)
53+
if err != nil {
54+
fmt.Printf("Can't parse log level '%v': %v\n", cfg.LogLevel, err)
55+
os.Exit(1)
56+
}
57+
logLever = zapcore.Level(logLeverRaw)
58+
}
59+
60+
log, err := createLogger(cfg.LogEncoder, logLever, syncStderr)
4661

4762
if cfg.FpmPath == "" {
4863
log.Error("php-fpm path not set")

0 commit comments

Comments
 (0)