Golang 操作 Logger、Zap Logger 日志_golang zap-CSDN博客
目录
一、 从控制器中获取参数的几种形式
1) 页面请求url直接拼接参数。
2) 页面请求提交form表单
3) 页面请求发送json数据,使用上下文对象c的BindJSON()方法接收数据
4) 页面请求发送json数据,使用相应小写字段 结构体对象接收值。
二、使用自定义的logger记录日志文件
1)创建 自定义的logger.go文件
2)使用自定义logger
1) 在common.go中文件写入logger.SimpleHttpGet() :
2)直接在路由请求调用的函数中写入logger.SimpleHttpGet()
一、 从控制器中获取参数的几种形式
1) 页面请求url直接拼接参数。
2) 页面请求提交form表单
3) 页面请求发送json数据,使用上下文对象c的BindJSON()方法接收数据
4) 页面请求发送json数据,使用相应小写字段 结构体对象接收值。
二、使用自定义的logger记录日志文件
1)创建 自定义的logger.go文件
package loggerimport ("net/http""github.com/natefinch/lumberjack""go.uber.org/zap""go.uber.org/zap/zapcore" )var sugarLogger *zap.SugaredLogger//func main() { // InitLogger() // defer sugarLogger.Sync() // simpleHttpGet("https://www.baidu.com") // simpleHttpGet("https://c.runoob.com") //}func InitLogger() {writeSyncer := getLogWriter()encoder := getEncoder()core := zapcore.NewCore(encoder, writeSyncer, zapcore.DebugLevel)logger := zap.New(core)sugarLogger = logger.Sugar() }// func getEncoder() zapcore.Encoder { // return zapcore.NewJSONEncoder(zap.NewProductionEncoderConfig()) // return zapcore.NewConsoleEncoder(zap.NewProductionEncoderConfig()) // }func getEncoder() zapcore.Encoder {encoderConfig := zap.NewProductionEncoderConfig()encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoderencoderConfig.EncodeLevel = zapcore.CapitalLevelEncoderreturn zapcore.NewConsoleEncoder(encoderConfig) }// func getLogWriter() zapcore.WriteSyncer { //如果想要追加写入可以查看我的博客文件操作那一章 // file, _ := os.Create("./test.log") // return zapcore.AddSync(file) // }func getLogWriter() zapcore.WriteSyncer {lumberJackLogger := &lumberjack.Logger{Filename: "./test.log",MaxSize: 1,MaxBackups: 5,MaxAge: 30,Compress: false,}return zapcore.AddSync(lumberJackLogger) }func SimpleHttpGet(url string) {sugarLogger.Debugf("Trying to hit GET request for %s", url)resp, err := http.Get(url)if err != nil {sugarLogger.Errorf("Error fetching URL %s : Error = %s", url, err)} else {sugarLogger.Infof("Success! statusCode = %s for URL %s", resp.Status, url)resp.Body.Close()} }
2)使用自定义logger
1) 在common.go中文件写入logger.SimpleHttpGet() :
每个url请求调用的函数最终调同到ReturnSuccess()函数
logger.InitLogger()logger.SimpleHttpGet(c.Request.URL.Path)
2)直接在路由请求调用的函数中写入logger.SimpleHttpGet()