面试题答案
一键面试在Go语言中,标准库log
并没有直接支持日志级别的概念。通常会使用第三方库来实现日志级别功能,比如logrus
。以下以logrus
为例说明:
-
安装
logrus
库go get github.com/sirupsen/logrus
-
设置不同日志级别并输出日志
package main import ( "github.com/sirupsen/logrus" ) func main() { // 创建一个新的Logger实例 logger := logrus.New() // 设置日志级别为DEBUG logger.SetLevel(logrus.DebugLevel) // DEBUG级别日志 logger.Debug("这是一条DEBUG级别的日志") // INFO级别日志 logger.Info("这是一条INFO级别的日志") // WARN级别日志 logger.Warn("这是一条WARN级别的日志") // ERROR级别日志 logger.Error("这是一条ERROR级别的日志") }
在上述代码中:
logger.SetLevel(logrus.DebugLevel)
设置日志级别为DEBUG,DEBUG级别是最低的日志级别,会打印所有级别的日志。logger.Debug("...")
输出DEBUG级别的日志。logger.Info("...")
输出INFO级别的日志。logger.Warn("...")
输出WARN级别的日志。logger.Error("...")
输出ERROR级别的日志。
如果将日志级别设置为logrus.InfoLevel
,则DEBUG级别的日志不会被打印,以此类推。例如:
package main
import (
"github.com/sirupsen/logrus"
)
func main() {
logger := logrus.New()
// 设置日志级别为INFO
logger.SetLevel(logrus.InfoLevel)
logger.Debug("这是一条DEBUG级别的日志") // 此日志不会被打印
logger.Info("这是一条INFO级别的日志")
logger.Warn("这是一条WARN级别的日志")
logger.Error("这是一条ERROR级别的日志")
}