Browse Source

added -logLevel to allow control of the log level

cnelson 10 years ago
parent
commit
8056e1b72e

+ 7 - 0
src/ngrok/client/cli.go

@@ -36,6 +36,7 @@ Examples:
 type Options struct {
 	config    string
 	logto     string
+	loglevel  string
 	authtoken string
 	httpauth  string
 	hostname  string
@@ -62,6 +63,11 @@ func ParseArgs() (opts *Options, err error) {
 		"none",
 		"Write log messages to this file. 'stdout' and 'none' have special meanings")
 
+	loglevel := flag.String(
+		"logLevel",
+		"DEBUG",
+		"The level of messages to log. One of: FINEST, FINE, DEBUG, TRACE, INFO, WARNING, ERROR, CRITICAL")
+
 	authtoken := flag.String(
 		"authtoken",
 		"",
@@ -92,6 +98,7 @@ func ParseArgs() (opts *Options, err error) {
 	opts = &Options{
 		config:    *config,
 		logto:     *logto,
+		loglevel:  *loglevel,
 		httpauth:  *httpauth,
 		subdomain: *subdomain,
 		protocol:  *protocol,

+ 1 - 1
src/ngrok/client/main.go

@@ -31,7 +31,7 @@ func Main() {
 	}
 
 	// set up logging
-	log.LogTo(opts.logto)
+	log.LogTo(opts.logto, opts.loglevel)
 
 	// read configuration file
 	config, err := LoadConfiguration(opts)

+ 25 - 2
src/ngrok/log/logger.go

@@ -7,7 +7,7 @@ import (
 
 var root log.Logger = make(log.Logger)
 
-func LogTo(target string) {
+func LogTo(target string, level_name string) {
 	var writer log.LogWriter = nil
 
 	switch target {
@@ -20,7 +20,30 @@ func LogTo(target string) {
 	}
 
 	if writer != nil {
-		root.AddFilter("log", log.DEBUG, writer)
+		var level = log.DEBUG
+
+		switch level_name {
+		case "FINEST":
+			level = log.FINEST
+		case "FINE":
+			level = log.FINE
+		case "DEBUG":
+			level = log.DEBUG
+		case "TRACE":
+			level = log.TRACE
+		case "INFO":
+			level = log.INFO
+		case "WARNING":
+			level = log.WARNING
+		case "ERROR":
+			level = log.ERROR
+		case "CRITICAL":
+			level = log.CRITICAL
+		default:
+			level = log.DEBUG
+		}
+
+		root.AddFilter("log", level, writer)
 	}
 }
 

+ 3 - 1
src/ngrok/server/cli.go

@@ -12,6 +12,7 @@ type Options struct {
 	tlsCrt     string
 	tlsKey     string
 	logto      string
+	loglevel   string
 }
 
 func parseArgs() *Options {
@@ -22,7 +23,7 @@ func parseArgs() *Options {
 	tlsCrt := flag.String("tlsCrt", "", "Path to a TLS certificate file")
 	tlsKey := flag.String("tlsKey", "", "Path to a TLS key file")
 	logto := flag.String("log", "stdout", "Write log messages to this file. 'stdout' and 'none' have special meanings")
-
+	loglevel := flag.String("logLevel", "DEBUG", "The level of messages to log. One of: FINEST, FINE, DEBUG, TRACE, INFO, WARNING, ERROR, CRITICAL")
 	flag.Parse()
 
 	return &Options{
@@ -33,5 +34,6 @@ func parseArgs() *Options {
 		tlsCrt:     *tlsCrt,
 		tlsKey:     *tlsKey,
 		logto:      *logto,
+		loglevel:   *loglevel,
 	}
 }

+ 1 - 1
src/ngrok/server/main.go

@@ -103,7 +103,7 @@ func Main() {
 	opts = parseArgs()
 
 	// init logging
-	log.LogTo(opts.logto)
+	log.LogTo(opts.logto, opts.loglevel)
 
 	// seed random number generator
 	seed, err := util.RandomSeed()