Forráskód Böngészése

Slightly improved logging

Piotr Czajkowski 8 éve
szülő
commit
f8d6424468
1 módosított fájl, 8 hozzáadás és 16 törlés
  1. 8 16
      logger.go

+ 8 - 16
logger.go

@@ -1,7 +1,6 @@
 package main
 
 import (
-	"fmt"
 	"log"
 	"net"
 	"net/http"
@@ -24,33 +23,26 @@ func GetInfoFromRequest(r *http.Request) (string, string, string) {
 	return host, searchPhrase, language
 }
 
-// WriteLog writes log entry to the file.
-func WriteLog(logString string) error {
+// GetLogger returns new logger
+func GetLogger() *log.Logger {
 	logFile := filepath.Join("log", (time.Now().Format("200612") + ".log"))
 	logOutput, err := os.OpenFile(logFile, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
 	if err != nil {
-		return err
+		log.Fatalf("Error creating log file: %v", err)
 	}
-	defer logOutput.Close()
 
-	_, err = logOutput.WriteString(logString)
-	return err
+	logger := log.New(logOutput, "", log.Ldate|log.Ltime)
+	return logger
 }
 
 // Logger main function, saves event to the log.
 func Logger(r *http.Request, resultsServed int) {
 	host, searchPhrase, language := GetInfoFromRequest(r)
-	timeFormat := "2006-01-02 15:04:05"
+	logger := GetLogger()
 
-	var logString string
 	if searchPhrase != "" {
-		logString = fmt.Sprintf("%v,%v,\"%v\",\"%v\",%v\n", time.Now().Format(timeFormat), host, searchPhrase, language, resultsServed)
+		logger.Printf(",%v,\"%v\",\"%v\",%v\n", host, searchPhrase, language, resultsServed)
 	} else {
-		logString = fmt.Sprintf("%v,%v,TMS,\"%v\",%v\n", time.Now().Format(timeFormat), host, language, resultsServed)
-	}
-
-	err := WriteLog(logString)
-	if err != nil {
-		log.Fatalf("Error writing log: %v", err)
+		logger.Printf(",%v,TMS,\"%v\",%v\n", host, language, resultsServed)
 	}
 }