|
@@ -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)
|
|
|
}
|
|
|
}
|