added log system, and added mongodb geolocation
arnaucode idoctnef@openmailbox.org
Tue, 01 Aug 2017 18:31:18 +0200
6 files changed,
59 insertions(+),
28 deletions(-)
A
log.go
@@ -0,0 +1,18 @@
+package main + +import ( + "io" + "log" + "os" + "time" +) + +func savelog() { + timeS := time.Now().String() + logFile, err := os.OpenFile("log-"+timeS+".log", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0666) + if err != nil { + panic(err) + } + mw := io.MultiWriter(os.Stdout, logFile) + log.SetOutput(mw) +}
M
main.go
→
main.go
@@ -1,12 +1,10 @@
package main import ( - "fmt" "log" "net/http" "os" - "github.com/fatih/color" "github.com/gorilla/handlers" mgo "gopkg.in/mgo.v2" )@@ -14,6 +12,8 @@
var cellCollection *mgo.Collection func main() { + savelog() + //connect with mongodb readMongodbConfig("./mongodbConfig.json") session, err := getSession()@@ -22,17 +22,18 @@ cellCollection = getCollection(session, "cells")
if len(os.Args) > 1 { if os.Args[1] == "-dataset" { - color.Blue("starting to read dataset") + log.Println("starting to read dataset") readDataset("cell_towers.csv") - color.Blue("finished reading dataset") + //readDataset("dataModel_head.csv") + log.Println("finished reading dataset") } } //http server start readServerConfig("./serverConfig.json") - color.Green("server running") - fmt.Print("port: ") - color.Green(serverConfig.ServerPort) + log.Println("server running") + log.Print("port: ") + log.Println(serverConfig.ServerPort) router := NewRouter() headersOk := handlers.AllowedHeaders([]string{"X-Requested-With", "Access-Control-Allow-Origin"})
M
mongoModels.go
→
mongoModels.go
@@ -1,18 +1,23 @@
package main +type LocationModel struct { + Type string `json:"type"` + Coordinates []float64 `json:"coordinates"` +} type CellModel struct { - Radio string `json:"radio"` - MCC string `json:"mcc"` - Net int `json:"net"` - Area int `json:"area"` - Cell int `json:"cell"` - Unit int `json:"unit"` - Lat float64 `json:"lat"` - Lon float64 `json:"lon"` - Range float64 `json:"range"` - Samples int `json:"samples"` - Changeable string `json:"changeable"` - Created int64 `json:"created"` - Updated int64 `json:"updated"` - AverageSignal float64 `json:"averagesignal"` + Radio string `json:"radio"` + MCC string `json:"mcc"` + Net int `json:"net"` + Area int `json:"area"` + Cell int `json:"cell"` + Unit int `json:"unit"` + Lat float64 `json:"lat"` + Lon float64 `json:"lon"` + Location LocationModel `json:"location"` + Range float64 `json:"range"` + Samples int `json:"samples"` + Changeable string `json:"changeable"` + Created int64 `json:"created"` + Updated int64 `json:"updated"` + AverageSignal float64 `json:"averagesignal"` }
M
readDataset.go
→
readDataset.go
@@ -2,7 +2,7 @@ package main
import ( "bufio" - "fmt" + "log" "os" "strconv" "strings"@@ -29,6 +29,13 @@ cell.Cell, _ = strconv.Atoi(line[4])
cell.Unit, _ = strconv.Atoi(line[5]) cell.Lon, _ = strconv.ParseFloat(line[6], 64) cell.Lat, _ = strconv.ParseFloat(line[7], 64) + var location LocationModel + location.Type = "Point" + lon, _ := strconv.ParseFloat(line[6], 64) + lat, _ := strconv.ParseFloat(line[7], 64) + location.Coordinates = append(location.Coordinates, lat) + location.Coordinates = append(location.Coordinates, lon) + cell.Location = location cell.Range, _ = strconv.ParseFloat(line[8], 64) cell.Samples, _ = strconv.Atoi(line[9]) cell.Changeable = line[10]@@ -42,8 +49,7 @@ check(err)
} lineNum++ } - fmt.Print("line num: ") - fmt.Println(lineNum) - fmt.Print("time elapsed from start: ") - fmt.Println(time.Since(tStart)) + log.Println("line num: " + strconv.Itoa(lineNum)) + log.Print("time elapsed from start: ") + log.Println(time.Since(tStart)) }