//打开一个合适的日志记录器 func Open(typ string, level int, arg *provider.Arg) error { //设置默认日志级别 if level < LEVEL_TRACE || level > LEVEL_ALL { level = LEVEL_DEFAULT } if _, isExists := drivers[arg.Driver]; isExists { return fmt.Errorf("The driver with the name: %s is existed\n", arg.Driver) } var drv Logger logger := provider.New(typ, logPrefixs[level], arg) if logger == nil { return fmt.Errorf("create the new driver with name: %s is failed\n", arg.Driver) } drv = logger.(Logger) register(arg.Driver, drv) Change(arg.Driver, level) return nil }
func init() { arg := provider.Arg{ Driver: provider.CONSOLE, Extras: map[string]interface{}{ provider.FLAG: provider.Lshortfile | provider.LstdFlags, }, } drv := provider.New(provider.CONSOLE, logPrefixs[LEVEL_DEFAULT], &arg).(Logger) register(provider.CONSOLE, drv) //默认管理器 defMgr := manager{ defLogger: drivers[provider.DEFAULT], curLogger: drivers[provider.DEFAULT], level: LEVEL_DEFAULT, //默认为>=warn 的消息才输出 chanLogArgs: make(chan *LogArgs, DEFAULT_CHAN_SIZE), //输出日志所需要的信息 stopFlag: make(chan struct{}), } globalMgr = &defMgr }