From 09e331075ab501d42e10cf3a3cc01607132e9a5c Mon Sep 17 00:00:00 2001 From: Jan Halfar Date: Thu, 12 Sep 2013 23:40:59 +0200 Subject: [PATCH] added logLevel flag --- main.go | 18 ++++++++++++++++-- server/log/log.go | 32 +++++++++++++++++++++++++++----- 2 files changed, 43 insertions(+), 7 deletions(-) diff --git a/main.go b/main.go index aa9536f..86cce3d 100644 --- a/main.go +++ b/main.go @@ -6,6 +6,7 @@ import ( "github.com/foomo/ContentServer/server" "github.com/foomo/ContentServer/server/log" "os" + "strings" ) const ( @@ -24,6 +25,19 @@ var contentServer string var protocol = flag.String("protocol", PROTOCOL_TCP, "what protocol to server for") var address = flag.String("address", "127.0.0.1:8081", "address to bind host:port") +var logLevelOptions = []string{ + log.LOG_LEVEL_NAME_ERROR, + log.LOG_LEVEL_NAME_RECORD, + log.LOG_LEVEL_NAME_WARNING, + log.LOG_LEVEL_NAME_NOTICE, + log.LOG_LEVEL_NAME_DEBUG} + +var logLevel = flag.String( + "logLevel", + log.LOG_LEVEL_NAME_RECORD, + fmt.Sprintf( + "one of %s", + strings.Join(logLevelOptions, ", "))) func exitUsage(code int) { fmt.Printf("Usage: %s http(s)://your-content-server/path/to/content.json\n", os.Args[0]) @@ -33,15 +47,15 @@ func exitUsage(code int) { func main() { flag.Parse() - log.SetLogLevel(log.LOG_LEVEL_DEBUG) if len(flag.Args()) == 1 { fmt.Println(*protocol, *address, flag.Arg(0)) - //server.Run(":8080", "http://test.bestbytes/foomo/modules/Foomo.Page.Content/services/content.php") + log.SetLogLevel(log.GetLogLevelByName(*logLevel)) switch *protocol { case PROTOCOL_TCP: server.RunSocketServer(flag.Arg(0), *address) break case PROTOCOL_HTTP: + //server.Run(":8080", "http://test.bestbytes/foomo/modules/Foomo.Page.Content/services/content.php") fmt.Println("http server does not work yet - use tcp instead") break default: diff --git a/server/log/log.go b/server/log/log.go index d7f9d37..5f8d6d4 100644 --- a/server/log/log.go +++ b/server/log/log.go @@ -10,11 +10,16 @@ var logLevel int = LOG_LEVEL_DEBUG var numErrors int64 = 0 const ( - LOG_LEVEL_ERROR = 0 - LOG_LEVEL_RECORD = 1 - LOG_LEVEL_WARNING = 2 - LOG_LEVEL_NOTICE = 3 - LOG_LEVEL_DEBUG = 4 + LOG_LEVEL_ERROR = 0 + LOG_LEVEL_NAME_ERROR = "error" + LOG_LEVEL_RECORD = 1 + LOG_LEVEL_NAME_RECORD = "record" + LOG_LEVEL_WARNING = 2 + LOG_LEVEL_NAME_WARNING = "warning" + LOG_LEVEL_NOTICE = 3 + LOG_LEVEL_NAME_NOTICE = "notice" + LOG_LEVEL_DEBUG = 4 + LOG_LEVEL_NAME_DEBUG = "debug" ) var prefices = map[int]string{ @@ -25,6 +30,23 @@ var prefices = map[int]string{ LOG_LEVEL_DEBUG: "debug : ", } +var logLevelMap = map[string]int{ + LOG_LEVEL_NAME_ERROR: LOG_LEVEL_ERROR, + LOG_LEVEL_NAME_RECORD: LOG_LEVEL_RECORD, + LOG_LEVEL_NAME_WARNING: LOG_LEVEL_WARNING, + LOG_LEVEL_NAME_NOTICE: LOG_LEVEL_NOTICE, + LOG_LEVEL_NAME_DEBUG: LOG_LEVEL_DEBUG, +} + +func GetLogLevelByName(name string) int { + if level, ok := logLevelMap[name]; ok { + return level + } else { + return LOG_LEVEL_RECORD + } + +} + func log(msg string, level int) string { if level <= logLevel { prefix := time.Now().Format(time.RFC3339) + " " + prefices[level]