当前位置: 首页 > news >正文

怎么建立网站快捷方式wordpress 服务器

怎么建立网站快捷方式,wordpress 服务器,廊坊网站开发,网页设计框架代码示例Golang 操作 Logger、Zap Logger 日志_golang zap-CSDN博客 目录 一、 从控制器中获取参数的几种形式 1#xff09; 页面请求url直接拼接参数。 2#xff09; 页面请求提交form表单 3#xff09; 页面请求发送json数据#xff0c;使用上下文对象c的BindJSON()方法接… 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() 三) 再次自定义logger 使用自定义logger函数 一、  从控制器中获取参数的几种形式 1  页面请求url直接拼接参数。    2    页面请求提交form表单     3   页面请求发送json数据使用上下文对象c的BindJSON()方法接收数据     4    页面请求发送json数据使用相应小写字段 结构体对象接收值。 二、使用自定义的logger记录日志文件 1创建 自定义的logger.go文件    package loggerimport (net/httpgithub.com/natefinch/lumberjackgo.uber.org/zapgo.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() 三) 再次自定义logger package loggerimport (fmtgithub.com/gin-gonic/gingithub.com/sirupsen/logrusionet/httpospathruntime/debugtime )func init() {// 设置日志格式为json格式logrus.SetFormatter(logrus.JSONFormatter{TimestampFormat: 2006-01-02 15:04:05,})logrus.SetReportCaller(false) }func Write(msg string, filename string) {setOutPutFile(logrus.InfoLevel, filename)logrus.Info(msg) }func Debug(fields logrus.Fields, args ...interface{}) {setOutPutFile(logrus.DebugLevel, debug)logrus.WithFields(fields).Debug(args) }func Info(fields logrus.Fields, args ...interface{}) {setOutPutFile(logrus.InfoLevel, info)logrus.WithFields(fields).Info(args) }func Warn(fields logrus.Fields, args ...interface{}) {setOutPutFile(logrus.WarnLevel, warn)logrus.WithFields(fields).Warn(args) }func Fatal(fields logrus.Fields, args ...interface{}) {setOutPutFile(logrus.FatalLevel, fatal)logrus.WithFields(fields).Fatal(args) }func Error(fields logrus.Fields, args ...interface{}) {setOutPutFile(logrus.ErrorLevel, error)logrus.WithFields(fields).Error(args) }func Panic(fields logrus.Fields, args ...interface{}) {setOutPutFile(logrus.PanicLevel, panic)logrus.WithFields(fields).Panic(args) }func Trace(fields logrus.Fields, args ...interface{}) {setOutPutFile(logrus.TraceLevel, trace)logrus.WithFields(fields).Trace(args) }func setOutPutFile(level logrus.Level, logName string) {if _, err : os.Stat(./runtime/log); os.IsNotExist(err) {err os.MkdirAll(./runtime/log, 0777)if err ! nil {panic(fmt.Errorf(create log dir %s error: %s, ./runtime/log, err))}}timeStr : time.Now().Format(2006-01-02)fileName : path.Join(./runtime/log, logName_timeStr.log)var err erroros.Stderr, err os.OpenFile(fileName, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0644)if err ! nil {fmt.Println(open log file err, err)}logrus.SetOutput(os.Stderr)logrus.SetLevel(level)return }func LoggerToFile() gin.LoggerConfig {if _, err : os.Stat(./runtime/log); os.IsNotExist(err) {err os.MkdirAll(./runtime/log, 0777)if err ! nil {panic(fmt.Errorf(create log dir %s error: %s, ./runtime/log, err))}}timeStr : time.Now().Format(2006-01-02)fileName : path.Join(./runtime/log, success_timeStr.log)os.Stderr, _ os.OpenFile(fileName, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0644)var conf gin.LoggerConfig{Formatter: func(param gin.LogFormatterParams) string {return fmt.Sprintf(%s - %s \%s %s %s %d %s \%s\ %s\\n,param.TimeStamp.Format(2006-01-02 15:04:05),param.ClientIP,param.Method,param.Path,param.Request.Proto,param.StatusCode,param.Latency,param.Request.UserAgent(),param.ErrorMessage,)},Output: io.MultiWriter(os.Stdout, os.Stderr),}return conf }func Recover(c *gin.Context) {defer func() {if err : recover(); err ! nil {if _, errDir : os.Stat(./runtime/log); os.IsNotExist(errDir) {errDir os.MkdirAll(./runtime/log, 0777)if errDir ! nil {panic(fmt.Errorf(create log dir %s error: %s, ./runtime/log, errDir))}}timeStr : time.Now().Format(2006-01-02)fileName : path.Join(./runtime/log, error_timeStr.log)f, errFile : os.OpenFile(fileName, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0644)if errFile ! nil {fmt.Println(errFile)}timeFileStr : time.Now().Format(2006-01-02 15:04:05)f.WriteString(panic error time: timeFileStr \n)f.WriteString(fmt.Sprintf(%v, err) \n)f.WriteString(stacktrace from panic: string(debug.Stack()) \n)f.Close()c.JSON(http.StatusOK, gin.H{code: 500,msg: fmt.Sprintf(%v, err),})//终止后续接口调用不加的话recover到异常后还会继续执行接口里后续代码c.Abort()}}()c.Next() }使用自定义logger函数
http://www.dnsts.com.cn/news/95054.html

相关文章:

  • 网站开发+进度表广州有做虚拟货币网站
  • 做网站可以卖别的牌子的产品吗aso优化师工作很赚钱吗
  • 响应式视频网站模板下载图片在线制作编辑
  • 怎样做QQ网站呢如何设计营销 网站建设
  • 肥西建设局官方网站做网站 空间
  • 无锡响应式网站建设怎样编辑网页
  • 本地手机网站建设做网站投资要多少钱
  • 一站式网站建设服务wordpress5.21开启多站点
  • 广州网站建设推荐q479185700霸屏wordpress仿36kr主题
  • 网站建设框架构建互联网公司排名2021
  • 济南做网站优化哪家好建筑网农村别墅
  • wordpress qq微信登陆驻马店营销型网站建设优化推广
  • 微官网和手机网站区别网站域名被抢注做商标
  • 怎样做网站的源代码蒙城做网站
  • 设计师常上的网站wordpress新用户提醒
  • net服装网站建设深圳建英文网站
  • 高校网站建设 网站群中英文外贸网站模板
  • asp.net 4.0网站开发高级视频教程做app的模板下载网站有哪些
  • 网站建设 创业网站营销与推广
  • 如何建立网站自己做站长建企业网站怎么做
  • 建设网站的目的服装类图库网址大全
  • 专业做网站建设设计全世界做会展介绍的网站排名
  • 宣讲家网站两学一做心得网站关键词怎么优化
  • 关键词设定在网站上建设部网站一级开发资质
  • 建设求职网站不受国家管理的浏览器
  • 齐诺网站建设东莞网站建设做网站网站建设的辅助软件
  • 营销型网站开发软文推广代写代发
  • 头条淘宝联盟网站推广怎么做wordpress主题 设定
  • 枣庄做网站济南网站系统优化
  • 1688黄页大全进口优化网站链接的方法