|
- package grlogs
-
- import (
- "bytes"
- "encoding/json"
- "fmt"
- "golib.gaore.com/GaoreGo/grlogs/logs"
- "os"
- "path"
- "sync"
- )
-
- const (
- _ = iota
- LEVEL_NONE = iota
- LEVEL_CRITICAL = iota
- LEVEL_ERROR = iota
- LEVEL_WARNING = iota
- LEVEL_WARN = iota
- LEVEL_INFO = iota
- LEVEL_DEBUG = iota
- LEVEL_ALL = iota
- )
-
- type ConsoleLogConfig struct {
- Level int `json:"level"`
- }
-
- type FileLogConfig struct {
- Filename string `json:"filename"`
- Level int `json:"level"`
- Maxlines int `json:"maxlines"`
- Daily bool `json:"daily"`
- Maxdays int `json:"maxdays"`
- Color bool `json:"color"`
- Rotate bool `json:"rotate"`
- }
-
- type ConnLogConfig struct {
- ReconnectOnMsg bool `json:"reconnect_on_msg"`
- Reconnect bool `json:"reconnect"`
- Net string `json:"net"`
- Addr string `json:"addr"`
- Level int `json:"level"`
- }
-
- var loggers = sync.Map{}
-
- type Logger struct {
- *logs.BeeLogger
- }
-
- func (l *Logger) Write(p []byte) (n int, err error) {
- l.Debug(bytes.NewBuffer(p).String())
- return
- }
-
- func (l *Logger) SetFormat() {
-
- }
-
- func (l *Logger) Stop() {
- l.BeeLogger.Close()
- }
-
- func GetLogger(name string) *Logger {
-
- if l, ok := loggers.Load(name); ok {
- return l.(*Logger)
- } else {
- var level int = LEVEL_WARN
-
- if s := os.Getenv("CENTER_RUNMODE"); s == "dev" {
- level = LEVEL_ALL
- }
-
- wd, _ := os.Getwd()
-
- conf1 := FileLogConfig{
- Filename: path.Join(wd, fmt.Sprintf("runtime/logs/%s.log", name)),
- Level: LEVEL_ALL,
- Maxlines: 0,
- Daily: true,
- Maxdays: 7,
- Color: true,
- Rotate: true,
- }
-
- conf2 := ConsoleLogConfig{
- Level: level,
- }
-
- confString, _ := json.Marshal(&conf1)
- confString2, _ := json.Marshal(&conf2)
- l := new(Logger)
- l.BeeLogger = logs.NewLogger()
- l.SetLogger(logs.AdapterFile, bytes.NewBuffer(confString).String())
- l.SetLogger(logs.AdapterConsole, bytes.NewBuffer(confString2).String())
- l.BeeLogger.SetPrefix("_" + name)
- l.BeeLogger.EnableFuncCallDepth(true)
- l.BeeLogger.SetLogFuncCallDepth(2)
- loggers.Store(name, l)
- return l
- }
- }
|