diff --git a/README.md b/README.md index 2265aa80..faafd06b 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,15 @@ If you don't want to run the **web client** using our *Docker* image you can dow ./bblfsh-web -bblfsh-addr ``` +You can also configure the server in debug mode passing `--debug` extra flag, and the logging level with the `LOG_LEVEL` environment value: + +```sh +LOG_LEVEL={debug,info,warning error} ./bblfsh-web -bblfsh-addr --debug +``` + +If none are set, its default values will be logging level `info`, and server in `ReleaseMode`. + + ## Development See [CONTRIBUTING.md](CONTRIBUTING.md). There is information about the [application architecture](CONTRIBUTING.md#Architecture) and how to [build](CONTRIBUTING.md#Development) from sources. diff --git a/server/cmd/bblfsh-web/main.go b/server/cmd/bblfsh-web/main.go index f2d4ffd7..45913487 100644 --- a/server/cmd/bblfsh-web/main.go +++ b/server/cmd/bblfsh-web/main.go @@ -5,6 +5,7 @@ import ( "fmt" "log" "net/http" + "os" "time" "github.com/bblfsh/web/server" @@ -18,13 +19,20 @@ var version = "dev" func flags() (addr, bblfshAddr string, debug, version bool) { flag.StringVar(&addr, "addr", ":9999", "address in which the server will run") flag.StringVar(&bblfshAddr, "bblfsh-addr", "0.0.0.0:9432", "address of the babelfish server") - flag.BoolVar(&debug, "debug", false, "run in debug mode") + flag.BoolVar(&debug, "debug", false, "run the server in debug mode") flag.BoolVar(&version, "version", false, "show version and exits") flag.Parse() return } +var logLevels = map[string]logrus.Level{ + "debug": logrus.DebugLevel, + "info": logrus.InfoLevel, + "warning": logrus.WarnLevel, + "error": logrus.ErrorLevel, +} + func main() { addr, bblfshAddr, debug, showVersion := flags() @@ -33,6 +41,10 @@ func main() { return } + if level, ok := logLevels[os.Getenv("LOG_LEVEL")]; ok { + logrus.SetLevel(level) + } + if !debug { gin.SetMode(gin.ReleaseMode) }