Example #1
0
File: log.go Project: lewgun/tools
//打开一个合适的日志记录器
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
}
Example #2
0
File: log.go Project: lewgun/tools
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
}