diff --git a/README.md b/README.md old mode 100644 new mode 100755 index e86151c..55f1486 --- a/README.md +++ b/README.md @@ -7,6 +7,88 @@ mini but flexible and powerful logger for go
+package main + +import ( + "github.com/snail007/mini-logger" + "github.com/snail007/mini-logger/writers/console" + "github.com/snail007/mini-logger/writers/files" +) + +var log logger.MiniLogger +var accessLog logger.MiniLogger + +//initLog +func initLog() { + var level uint8 + switch cfg.GetString("log.console-level") { + case "debug": + level = logger.AllLevels + case "info": + level = logger.InfoLevel | logger.WarnLevel | logger.ErrorLevel | logger.FatalLevel + case "warn": + level = logger.WarnLevel | logger.ErrorLevel | logger.FatalLevel + case "error": + level = logger.ErrorLevel | logger.FatalLevel + case "fatal": + level = logger.FatalLevel + default: + level = 0 + } + log = logger.New(false, nil) + log.AddWriter(console.NewDefault(), level) + cfgF := files.GetDefaultFileConfig() + cfgF.LogPath = cfg.GetString("log.dir") + cfgF.MaxBytes = cfg.GetInt64("log.FileMaxSize") + cfgF.MaxCount = cfg.GetInt("log.MaxCount") + cfgLevels := cfg.GetStringSlice("log.level") + if ok, _ := inArray("debug", cfgLevels); ok { + cfgF.FileNameSet["debug"] = logger.AllLevels + } + if ok, _ := inArray("info", cfgLevels); ok { + cfgF.FileNameSet["info"] = logger.InfoLevel + } + if ok, _ := inArray("error", cfgLevels); ok { + cfgF.FileNameSet["error"] = logger.WarnLevel | logger.ErrorLevel | logger.FatalLevel + } + log.AddWriter(files.New(cfgF), logger.AllLevels) + + accessLog = logger.New(false, nil) + //accessLog.AddWriter(console.NewDefault(), logger.AllLevels) + if cfg.GetBool("log.access") { + accessCfg := files.GetDefaultFileConfig() + accessCfg.LogPath = cfg.GetString("log.dir") + accessCfg.MaxBytes = cfg.GetInt64("log.FileMaxSize") + accessCfg.MaxCount = cfg.GetInt("log.MaxCount") + accessCfg.FileNameSet = map[string]uint8{"access": logger.InfoLevel} + accessLog.AddWriter(files.New(accessCfg), logger.InfoLevel) + } + + log.With(logger.Fields{"func": "getMqConnection", "call": "pools.Get"}).Errorf("fail,%s", err) +} + +//MiniLogger is a interface below: +type MiniLogger interface { + Debug(v ...interface{}) MiniLogger + Info(v ...interface{}) MiniLogger + Warn(v ...interface{}) MiniLogger + Error(v ...interface{}) MiniLogger + Fatal(v ...interface{}) + Debugf(format string, v ...interface{}) MiniLogger + Infof(format string, v ...interface{}) MiniLogger + Warnf(format string, v ...interface{}) MiniLogger + Errorf(format string, v ...interface{}) MiniLogger + Fatalf(format string, v ...interface{}) + Debugln(v ...interface{}) MiniLogger + Infoln(v ...interface{}) MiniLogger + Warnln(v ...interface{}) MiniLogger + Errorln(v ...interface{}) MiniLogger + Fatalln(v ...interface{}) + AddWriter(w Writer, levels uint8) MiniLogger + Safe() MiniLogger + Unsafe() MiniLogger + With(fields Fields) MiniLogger +}diff --git a/logger.go b/logger.go old mode 100644 new mode 100755 diff --git a/writers/console/console.go b/writers/console/console.go old mode 100644 new mode 100755 diff --git a/writers/files/files.go b/writers/files/files.go old mode 100644 new mode 100755