Commit d4cc1254 authored by obscuren's avatar obscuren

Added more logging functions

parent dc994b35
...@@ -46,7 +46,7 @@ func ReadConfig(base string) *config { ...@@ -46,7 +46,7 @@ func ReadConfig(base string) *config {
} }
Config = &config{ExecPath: path, Debug: true, Ver: "0.2.3"} Config = &config{ExecPath: path, Debug: true, Ver: "0.2.3"}
Config.Log = NewLogger(LogFile|LogStd, 0) Config.Log = NewLogger(LogFile|LogStd, LogLevelDebug)
} }
return Config return Config
...@@ -67,7 +67,7 @@ type Logger struct { ...@@ -67,7 +67,7 @@ type Logger struct {
func NewLogger(flag LoggerType, level int) Logger { func NewLogger(flag LoggerType, level int) Logger {
var loggers []*log.Logger var loggers []*log.Logger
flags := log.LstdFlags | log.Lshortfile flags := log.LstdFlags
if flag&LogFile > 0 { if flag&LogFile > 0 {
file, err := os.OpenFile(path.Join(Config.ExecPath, "debug.log"), os.O_RDWR|os.O_CREATE|os.O_APPEND, os.ModePerm) file, err := os.OpenFile(path.Join(Config.ExecPath, "debug.log"), os.O_RDWR|os.O_CREATE|os.O_APPEND, os.ModePerm)
...@@ -75,20 +75,25 @@ func NewLogger(flag LoggerType, level int) Logger { ...@@ -75,20 +75,25 @@ func NewLogger(flag LoggerType, level int) Logger {
log.Panic("unable to create file logger", err) log.Panic("unable to create file logger", err)
} }
log := log.New(file, "[ETH]", flags) log := log.New(file, "", flags)
loggers = append(loggers, log) loggers = append(loggers, log)
} }
if flag&LogStd > 0 { if flag&LogStd > 0 {
log := log.New(os.Stdout, "[ETH]", flags) log := log.New(os.Stdout, "", flags)
loggers = append(loggers, log) loggers = append(loggers, log)
} }
return Logger{logSys: loggers, logLevel: level} return Logger{logSys: loggers, logLevel: level}
} }
const (
LogLevelDebug = iota
LogLevelInfo
)
func (log Logger) Debugln(v ...interface{}) { func (log Logger) Debugln(v ...interface{}) {
if log.logLevel != 0 { if log.logLevel != LogLevelDebug {
return return
} }
...@@ -98,7 +103,27 @@ func (log Logger) Debugln(v ...interface{}) { ...@@ -98,7 +103,27 @@ func (log Logger) Debugln(v ...interface{}) {
} }
func (log Logger) Debugf(format string, v ...interface{}) { func (log Logger) Debugf(format string, v ...interface{}) {
if log.logLevel != 0 { if log.logLevel != LogLevelDebug {
return
}
for _, logger := range log.logSys {
logger.Printf(format, v...)
}
}
func (log Logger) Infoln(v ...interface{}) {
if log.logLevel > LogLevelInfo {
return
}
for _, logger := range log.logSys {
logger.Println(v...)
}
}
func (log Logger) Infof(format string, v ...interface{}) {
if log.logLevel > LogLevelInfo {
return return
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment