Skip to content

Commit

Permalink
update server
Browse files Browse the repository at this point in the history
  • Loading branch information
hanguofeng committed Apr 6, 2014
1 parent 8e21338 commit f4d8a09
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 21 deletions.
7 changes: 5 additions & 2 deletions server/confilter.conf
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
[server]
logLevel=INFO
listenAddr = 127.0.0.1:8080
[dictionary]
aaa=../aaa.txt
bbb=../bbb.txt
aaa=../data/aaa.txt
bbb=../data/bbb.txt
88 changes: 69 additions & 19 deletions server/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"flag"
"net/http"
"os"
"strings"
"time"

"github.com/hanguofeng/config"
Expand All @@ -16,6 +17,10 @@ var (
c *confilter.Confilter
configFile = flag.String("c", "confilter.conf", "the config file")
logger loggo.Logger

cfgDictionaries map[string]string
cfgLogLevel string
cfgListenAddr string
)

func JudgeHandler(res http.ResponseWriter, req *http.Request) {
Expand All @@ -31,23 +36,34 @@ func JudgeHandler(res http.ResponseWriter, req *http.Request) {
}

func main() {
var err error

initLogger()

err := initConfig()
err = initConfig()
if nil != err {
logger.Criticalf("fatal in init(initConfig),error:%s", err)
os.Exit(1)
}

adjustLogLevel()

err = initConfilter()
if nil != err {
logger.Errorf("fatal in init(initConfig),error:%s", err)
logger.Criticalf("fatal in init(initConfilter),error:%s", err)
os.Exit(1)
}

initConfilter()
initHttp()
logger.Infof("starting server,listen at <%s>", cfgListenAddr)
err = initHttp()
if nil != err {
logger.Criticalf("fatal in init(initHttp),error:%s", err)
os.Exit(1)
}

logger.Infof("Server start...")
http.ListenAndServe(":8080", nil)
}

func initConfig() error {

conf, err := config.ReadDefault(*configFile)
if nil != err {
return err
Expand All @@ -66,32 +82,66 @@ func initConfig() error {
}
dicts[dictOpt] = dictFile
}
logger.Infof("dictionaries:%s", dicts)

//logLevel
loglevel, err := conf.String("server", "logLevel")
if nil != err {
loglevel = "UNSPECIFIED"
}
//listenAddr
listenAddr, err := conf.String("server", "listenAddr")
if nil != err {
listenAddr = ":80"
}
cfgDictionaries = dicts
cfgLogLevel = loglevel
cfgListenAddr = listenAddr
return nil

}

func initLogger() {
logger = loggo.GetLogger("confilter.server")
logger.SetLogLevel(loggo.DEBUG)
}

func initConfilter() {
func adjustLogLevel() {
var level loggo.Level

switch strings.ToUpper(cfgLogLevel) {
case "UNSPECIFIED":
level = loggo.UNSPECIFIED
case "TRACE":
level = loggo.TRACE
case "DEBUG":
level = loggo.DEBUG
case "INFO":
level = loggo.INFO
case "WARNING":
level = loggo.WARNING
case "ERROR":
level = loggo.ERROR
case "CRITICAL":
level = loggo.CRITICAL
default:
level = loggo.UNSPECIFIED
}
logger.SetLogLevel(level)
}

func initConfilter() error {
config := new(confilter.ConfilterConfig)
dicts := make(map[string]string)
dicts["aaa"] = "../data/aaa.txt"
dicts["bbb"] = "../data/bbb.txt"
config.Dictionaries = dicts
config.Dictionaries = cfgDictionaries

confilterObj, err := confilter.CreateConfilter(config)
if nil != err {
logger.Errorf("error when create confilter:%s", err)
os.Exit(1)
return err
} else {
c = confilterObj
}
c = confilterObj

return nil
}

func initHttp() {
func initHttp() error {
http.HandleFunc("/api/confilter/judge", JudgeHandler)
return http.ListenAndServe(cfgListenAddr, nil)
}

0 comments on commit f4d8a09

Please sign in to comment.