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 logger import ( "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.ISO8601TimeEncoder encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder return 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()