Browse Source

added log system, and added mongodb geolocation

master
arnaucode 7 years ago
parent
commit
b02dddb47e
6 changed files with 59 additions and 28 deletions
  1. +1
    -0
      .gitignore
  2. +2
    -2
      errors.go
  3. +18
    -0
      log.go
  4. +8
    -7
      main.go
  5. +19
    -14
      mongoModels.go
  6. +11
    -5
      readDataset.go

+ 1
- 0
.gitignore

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

+ 2
- 2
errors.go

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

+ 18
- 0
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)
}

+ 8
- 7
main.go

@ -1,12 +1,10 @@
package main package main
import ( import (
"fmt"
"log" "log"
"net/http" "net/http"
"os" "os"
"github.com/fatih/color"
"github.com/gorilla/handlers" "github.com/gorilla/handlers"
mgo "gopkg.in/mgo.v2" mgo "gopkg.in/mgo.v2"
) )
@ -14,6 +12,8 @@ import (
var cellCollection *mgo.Collection var cellCollection *mgo.Collection
func main() { func main() {
savelog()
//connect with mongodb //connect with mongodb
readMongodbConfig("./mongodbConfig.json") readMongodbConfig("./mongodbConfig.json")
session, err := getSession() session, err := getSession()
@ -22,17 +22,18 @@ func main() {
if len(os.Args) > 1 { if len(os.Args) > 1 {
if os.Args[1] == "-dataset" { if os.Args[1] == "-dataset" {
color.Blue("starting to read dataset")
log.Println("starting to read dataset")
readDataset("cell_towers.csv") readDataset("cell_towers.csv")
color.Blue("finished reading dataset")
//readDataset("dataModel_head.csv")
log.Println("finished reading dataset")
} }
} }
//http server start //http server start
readServerConfig("./serverConfig.json") 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() router := NewRouter()
headersOk := handlers.AllowedHeaders([]string{"X-Requested-With", "Access-Control-Allow-Origin"}) headersOk := handlers.AllowedHeaders([]string{"X-Requested-With", "Access-Control-Allow-Origin"})

+ 19
- 14
mongoModels.go

@ -1,18 +1,23 @@
package main package main
type LocationModel struct {
Type string `json:"type"`
Coordinates []float64 `json:"coordinates"`
}
type CellModel struct { 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"`
} }

+ 11
- 5
readDataset.go

@ -2,7 +2,7 @@ package main
import ( import (
"bufio" "bufio"
"fmt"
"log"
"os" "os"
"strconv" "strconv"
"strings" "strings"
@ -29,6 +29,13 @@ func readDataset(path string) {
cell.Unit, _ = strconv.Atoi(line[5]) cell.Unit, _ = strconv.Atoi(line[5])
cell.Lon, _ = strconv.ParseFloat(line[6], 64) cell.Lon, _ = strconv.ParseFloat(line[6], 64)
cell.Lat, _ = strconv.ParseFloat(line[7], 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.Range, _ = strconv.ParseFloat(line[8], 64)
cell.Samples, _ = strconv.Atoi(line[9]) cell.Samples, _ = strconv.Atoi(line[9])
cell.Changeable = line[10] cell.Changeable = line[10]
@ -42,8 +49,7 @@ func readDataset(path string) {
} }
lineNum++ 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))
} }

Loading…
Cancel
Save