mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-22 23:58:44 +05:00
added new logger interface
This commit is contained in:
@@ -38,7 +38,7 @@ var (
|
||||
redissrv = flag.String("redissrv", "127.0.0.1:6379", "redis address host:port")
|
||||
redisdb = flag.Int("redisdb", 10, "redis database number")
|
||||
listen = flag.String("listen", "127.0.0.1:1234", "listening address host:port")
|
||||
standalone = flag.Bool("standalone", false, "start standalone server (no balancer)")
|
||||
standalone = flag.Bool("standalone", false, "start standalone server (no balancer, default false)")
|
||||
freeswitch = flag.Bool("freeswitch", false, "connect to freeswitch server")
|
||||
json = flag.Bool("json", false, "use JSON for RPC encoding")
|
||||
storage Responder
|
||||
|
||||
@@ -36,7 +36,7 @@ func StopSingnalHandler(server, listen *string, sg timespans.StorageGetter) {
|
||||
signal.Notify(c, syscall.SIGTERM, syscall.SIGINT, syscall.SIGQUIT)
|
||||
sig := <-c
|
||||
|
||||
log.Printf("Caught signal %v, unregistering from server\n", sig)
|
||||
log.Printf("Caught signal %v, unregistering from balancer\n", sig)
|
||||
unregisterFromServer(server, listen)
|
||||
sg.Close()
|
||||
os.Exit(1)
|
||||
@@ -48,14 +48,14 @@ Connects to the inquirer and calls unregister RPC method.
|
||||
func unregisterFromServer(server, listen *string) {
|
||||
client, err := rpc.DialHTTP("tcp", *server)
|
||||
if err != nil {
|
||||
log.Print("Cannot contact the server!")
|
||||
log.Print("Cannot contact the balancer!")
|
||||
os.Exit(1)
|
||||
}
|
||||
var reply int
|
||||
log.Print("Unregistering from server ", *server)
|
||||
log.Print("Unregistering from balancer ", *server)
|
||||
client.Call("RaterServer.UnRegisterRater", *listen, &reply)
|
||||
if err := client.Close(); err != nil {
|
||||
log.Print("Could not close server unregistration!")
|
||||
log.Print("Could not close balancer unregistration!")
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
@@ -66,14 +66,14 @@ Connects to the inquirer and rehisters the rater to the server.
|
||||
func RegisterToServer(server, listen *string) {
|
||||
client, err := rpc.DialHTTP("tcp", *server)
|
||||
if err != nil {
|
||||
log.Print("Cannot contact the server!")
|
||||
log.Print("Cannot contact the balancer!")
|
||||
os.Exit(1)
|
||||
}
|
||||
var reply int
|
||||
log.Print("Registering to server ", *server)
|
||||
log.Print("Registering to balancer ", *server)
|
||||
client.Call("RaterServer.RegisterRater", *listen, &reply)
|
||||
if err := client.Close(); err != nil {
|
||||
log.Print("Could not close server registration!")
|
||||
log.Print("Could not close balancer registration!")
|
||||
os.Exit(1)
|
||||
}
|
||||
log.Print("Registration finished!")
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
/*
|
||||
Rating system designed to be used in VoIP Carriers World
|
||||
Copyright (C) 2012 Radu Ioan Fericean
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
package mediator
|
||||
@@ -21,18 +21,15 @@ package timespans
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"log"
|
||||
"log/syslog"
|
||||
"math"
|
||||
"os"
|
||||
"time"
|
||||
)
|
||||
|
||||
func init() {
|
||||
var err error
|
||||
logger, err = syslog.NewLogger(syslog.LOG_ALERT, log.LstdFlags)
|
||||
logger, err = NewSyslogLogger()
|
||||
if err != nil {
|
||||
logger = log.New(os.Stderr, "", log.LstdFlags)
|
||||
logger = new(StdLogger)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +42,7 @@ const (
|
||||
|
||||
var (
|
||||
storageGetter StorageGetter
|
||||
logger *log.Logger
|
||||
logger LoggerInterface
|
||||
)
|
||||
|
||||
/*
|
||||
@@ -285,7 +282,7 @@ func (cd *CallDescriptor) GetCost() (*CallCost, error) {
|
||||
Cost: cost,
|
||||
ConnectFee: connectionFee,
|
||||
Timespans: timespans}
|
||||
logger.Printf("Get Cost: %v => %v", cd, cc)
|
||||
logger.Info(fmt.Sprintf("Get Cost: %v => %v", cd, cc))
|
||||
return cc, err
|
||||
}
|
||||
|
||||
@@ -340,7 +337,7 @@ func (cd *CallDescriptor) GetMaxSessionTime() (seconds float64, err error) {
|
||||
func (cd *CallDescriptor) Debit() (cc *CallCost, err error) {
|
||||
cc, err = cd.GetCost()
|
||||
if err != nil {
|
||||
logger.Printf("error getting cost %v", err)
|
||||
logger.Err(fmt.Sprintf("error getting cost %v", err))
|
||||
}
|
||||
if userBalance, err := cd.getUserBalance(); err == nil && userBalance != nil {
|
||||
defer storageGetter.SetUserBalance(userBalance)
|
||||
|
||||
111
timespans/logger.go
Normal file
111
timespans/logger.go
Normal file
@@ -0,0 +1,111 @@
|
||||
/*
|
||||
Rating system designed to be used in VoIP Carriers World
|
||||
Copyright (C) 2012 Radu Ioan Fericean
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
package timespans
|
||||
|
||||
import (
|
||||
"log"
|
||||
"log/syslog"
|
||||
)
|
||||
|
||||
type LoggerInterface interface {
|
||||
Alert(m string) error
|
||||
Close() error
|
||||
Crit(m string) error
|
||||
Debug(m string) error
|
||||
Emerg(m string) error
|
||||
Err(m string) error
|
||||
Info(m string) error
|
||||
Notice(m string) error
|
||||
Warning(m string) error
|
||||
}
|
||||
|
||||
type SyslogLogger struct {
|
||||
*syslog.Writer
|
||||
}
|
||||
|
||||
func NewSyslogLogger() (*SyslogLogger, error) {
|
||||
logger, err := syslog.New(syslog.LOG_INFO, "CGRateS")
|
||||
return &SyslogLogger{logger}, err
|
||||
}
|
||||
|
||||
func (sl *SyslogLogger) Alert(m string) (err error) {
|
||||
return sl.Alert(m)
|
||||
}
|
||||
func (sl *SyslogLogger) Close() error {
|
||||
return sl.Close()
|
||||
}
|
||||
func (sl *SyslogLogger) Crit(m string) (err error) {
|
||||
return sl.Crit(m)
|
||||
}
|
||||
func (sl *SyslogLogger) Debug(m string) (err error) {
|
||||
return sl.Debug(m)
|
||||
}
|
||||
func (sl *SyslogLogger) Emerg(m string) (err error) {
|
||||
return sl.Emerg(m)
|
||||
}
|
||||
func (sl *SyslogLogger) Err(m string) (err error) {
|
||||
return sl.Err(m)
|
||||
}
|
||||
func (sl *SyslogLogger) Info(m string) (err error) {
|
||||
return sl.Info(m)
|
||||
}
|
||||
func (sl *SyslogLogger) Notice(m string) (err error) {
|
||||
return sl.Notice(m)
|
||||
}
|
||||
func (sl *SyslogLogger) Warning(m string) (err error) {
|
||||
return sl.Warning(m)
|
||||
}
|
||||
|
||||
type StdLogger struct{}
|
||||
|
||||
func (sl *StdLogger) Alert(m string) (err error) {
|
||||
log.Print("[ALERT]" + m)
|
||||
return
|
||||
}
|
||||
func (sl *StdLogger) Close() (err error) {
|
||||
return
|
||||
}
|
||||
func (sl *StdLogger) Crit(m string) (err error) {
|
||||
log.Print("[CRITICAL]" + m)
|
||||
return
|
||||
}
|
||||
func (sl *StdLogger) Debug(m string) (err error) {
|
||||
log.Print("[DEBUG]" + m)
|
||||
return
|
||||
}
|
||||
func (sl *StdLogger) Emerg(m string) (err error) {
|
||||
log.Print("[EMERGENCY]" + m)
|
||||
return
|
||||
}
|
||||
func (sl *StdLogger) Err(m string) (err error) {
|
||||
log.Print("[ERROR]" + m)
|
||||
return
|
||||
}
|
||||
func (sl *StdLogger) Info(m string) (err error) {
|
||||
log.Print("[INFO]" + m)
|
||||
return
|
||||
}
|
||||
func (sl *StdLogger) Notice(m string) (err error) {
|
||||
log.Print("[NOTICE]" + m)
|
||||
return
|
||||
}
|
||||
func (sl *StdLogger) Warning(m string) (err error) {
|
||||
log.Print("[WARNING]" + m)
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user