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

做网站找人/武汉seo哪家好

做网站找人,武汉seo哪家好,怎么入驻京东商家平台,动态网站开发 教材转载自LINK 目录默认的go loggerZap Logger测试把日志写入文件最终版本默认的go logger 默认的log不支持日志分级,没有INFO,DEBUG,ERROR之分 package mainimport ("log""net/http""os" )func initlog(){logFileLocation, _ : os.OpenFile(&quo…

转载自LINK

目录

      • 默认的go logger
      • Zap Logger
        • 测试
        • 把日志写入文件
      • 最终版本

默认的go logger

默认的log不支持日志分级,没有INFO,DEBUG,ERROR之分

package mainimport ("log""net/http""os"
)func initlog(){logFileLocation, _ := os.OpenFile("./test.log", os.O_CREATE|os.O_RDWR|os.O_TRUNC, 0744) //创建一个可读写的文件,且覆盖掉以前的内容log.SetOutput(logFileLocation) //设置输出的文件
}
func testlog( url string ){resp, err := http.Get( url )if err != nil{log.Printf("Error fetching url %s : %s", url, err.Error() )}else{defer resp.Body.Close()log.Printf("Status code for %s : %s",url,resp.Status )}
}
func main(){initlog()testlog("https://www.acwing.com/")
}

Zap Logger

Zap是非常快的、结构化的,分日志级别的Go日志库

安装zip

go get -u go.uber.org/zap

测试

package mainimport ("go.uber.org/zap""net/http"
)var(logger *zap.Logger
)
func InitLogger(){logger,_ = zap.NewProduction() //初始化
}
func TestLogger( url string ){resp,err := http.Get( url )if err != nil{logger.Error("Error fetching url..",zap.String("url",url),zap.Error(err))}else{logger.Info("Success..",zap.String("statusCode",resp.Status ),zap.String("url",url))}
}
func main(){InitLogger()defer logger.Sync()TestLogger("h@://www.acwing.com")TestLogger("http://www.acwing.com")
}

其中logger.Error的原型是

func (log *Logger) Error(msg string, fields ...Field)
//msg代表为必选的字段,后面的Field是可选字段,最后会把这些字段拼接成一个json输出

把日志写入文件

将日志写入文件而不是终端

  • 我们将使用zap.New(…)方法来手动传递所有配置,而不是使用像zap.NewProduction()这样的预置方法来创建logger
func New(core zapcore.Core, options ...Option) *Logger

zapcore.Core需要三个配置——EncoderWriteSyncerLogLevel

1.Encoder:编码器(如何写入日志)。我们将使用开箱即用的NewJSONEncoder(),并使用预先设置的ProductionEncoderConfig()

 zapcore.NewJSONEncoder(zap.NewProductionEncoderConfig())

2.WriterSyncer:指定日志将写到哪里去。我们使用zapcore.AddSync()函数并且将打开的文件句柄传进去。

   file, _ := os.Create("./test.log")writeSyncer := zapcore.AddSync(file)

3.Log Level:设定哪种级别的日志将被写入。

于是,初始化logger就变成了这样

func InitLogger() {writeSyncer := getLogWriter()encoder := getEncoder()core := zapcore.NewCore(encoder, writeSyncer, zapcore.DebugLevel)logger = zap.New(core)
}func getEncoder() zapcore.Encoder {return zapcore.NewJSONEncoder(zap.NewProductionEncoderConfig())
}func getLogWriter() zapcore.WriteSyncer {file, _ := os.Create("./test.log")return zapcore.AddSync(file)
}

最终版本

getEncoder()中加入对时间格式的设置

getLogWriter()采用Lumberjack库支持(更多配置)

package mainimport ("net/http""github.com/natefinch/lumberjack""go.uber.org/zap""go.uber.org/zap/zapcore"
)var sugarLogger *zap.SugaredLoggerfunc main() {InitLogger()defer sugarLogger.Sync()simpleHttpGet("www.sogo.com")simpleHttpGet("http://www.sogo.com")
}func InitLogger() {writeSyncer := getLogWriter()encoder := getEncoder()core := zapcore.NewCore(encoder, writeSyncer, zapcore.DebugLevel)logger := zap.New(core, zap.AddCaller())sugarLogger = logger.Sugar()
}func getEncoder() zapcore.Encoder {encoderConfig := zap.NewProductionEncoderConfig()encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoderencoderConfig.EncodeLevel = zapcore.CapitalLevelEncoderreturn zapcore.NewConsoleEncoder(encoderConfig)
}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()}
}
http://www.jmfq.cn/news/5221279.html

相关文章:

  • 2017国外优秀网站设计/app推广实名认证接单平台
  • 1688黄页网品种大全2024/优化营商环境条例解读
  • 简述网站技术解决方案/站长统计app进入网址
  • 农业网站模板免费下载/seo教程seo官网优化详细方法
  • 重庆企业网站建设/网络优化公司排名
  • 做网站没有做退钱/福州短视频seo网红
  • 家用电脑可以做网站服务器/抖音营销软件
  • 一朋友做色情网站被抓了/企业营销策划案例
  • 网站做多长时间才会成功/搜索引擎营销的手段包括
  • 网站建设自评报告/聚名网
  • 个人网站有商业内容备案/安新seo优化排名网站
  • 网站建设哪家公司靠谱/新冠疫情最新消息今天公布
  • 有关房地产开发建设的网站/搜索引擎推广培训
  • 住建部关于epc总承包文件/沧州网站推广优化
  • 怎样制作表白网站/网络优化
  • 湖南岳阳网站开发网络公司/链接点击量软件
  • 美食网站建设设计方案/营销策划书格式及范文
  • 个人备案网站可以做商城展示/百度app 浏览器
  • 淮安做网站服务单位/什么网站可以免费发广告
  • wordpress网站代码/牛排seo系统
  • 国家建设部网站证书查询/52种新颖的促销方式
  • .cn域名可以做英文网站吗/品牌宣传策划方案
  • 免费网页游戏在线玩/怎么卸载windows优化大师
  • 本地怎样上传自己做的网站/安庆seo
  • 网络游戏制作软件/天津seo托管
  • 如何在百度做自己公司的网站/营销的方法手段有哪些
  • 东莞市专注网站建设品牌/短视频怎么赚钱
  • 在哪个网站做服装代理批发/seo研究协会网
  • 没有网站如何做adsense/站长工具ping
  • 工信部企业网站备案/成人计算机速成培训班