您的位置:首页 > 编程语言

有意思的代码--利用系统信号切换日志模式

2015-07-30 17:47 316 查看
看到Kite里面的源码,有段代码挺有意思。

上代码先:

// SetupSignalHandler listens to signals and toggles the log level to DEBUG
// mode when it received a SIGUSR2 signal. Another SIGUSR2 toggles the log
// level back to the old level.
func (k *Kite) SetupSignalHandler() {
c := make(chan os.Signal, 1)

signal.Notify(c, syscall.SIGUSR2)
go func() {
for s := range c {
k.Log.Info("Got signal: %s", s)

if debugMode {
// toogle back to old settings.
k.Log.Info("Disabling debug mode")
if k.SetLogLevel == nil {
k.Log.Error("SetLogLevel is not defined")
continue
}

k.SetLogLevel(getLogLevel())
debugMode = false
} else {
k.Log.Info("Enabling debug mode")
if k.SetLogLevel == nil {
k.Log.Error("SetLogLevel is not defined")
continue
}

k.SetLogLevel(DEBUG)
debugMode = true
}
}
}()
}


可以通过给正在运行的程序,切换日志模式。

举一反三,可以利用这个方式,来做很多开关切换。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: