added log system, and added mongodb geolocation

This commit is contained in:
arnaucode
2017-08-01 18:31:18 +02:00
parent 66a9ce4f85
commit b02dddb47e
6 changed files with 60 additions and 29 deletions

1
.gitignore vendored
View File

@@ -1,2 +1,3 @@
*.csv
*.csv.gz
*.log

View File

@@ -1,9 +1,9 @@
package main
import "fmt"
import "log"
func check(err error) {
if err != nil {
fmt.Println(err)
log.Println(err)
}
}

18
log.go Normal file
View File

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

15
main.go
View File

@@ -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 @@ import (
var cellCollection *mgo.Collection
func main() {
savelog()
//connect with mongodb
readMongodbConfig("./mongodbConfig.json")
session, err := getSession()
@@ -22,17 +22,18 @@ func main() {
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"})

View File

@@ -1,18 +1,23 @@
package main
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"`
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"`
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"`
}

View File

@@ -2,7 +2,7 @@ package main
import (
"bufio"
"fmt"
"log"
"os"
"strconv"
"strings"
@@ -29,6 +29,13 @@ func readDataset(path string) {
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 @@ func readDataset(path string) {
}
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))
}