Go语言中文网 为您找到相关结果 158

译|Let’s talk about logging

来源:cyningsun.github.io/09-27-2019/… 本文受 Nate Finch started on the Go Forum 的一个话题启发。本文专注于 Go,但是如果你能看透,我认为这里提出的想法是广泛适用的。 Why no love ? Go 的 log package 没有日志级别,你必须自己手动添加 debug、info、warn 和 error 等前缀。另外,Go 的 日志类型无法以包为基础打开或者关闭这些不同级别。通过比较,让我们看一些第三方的替代品: Google 的 glog 提供以下级别: Info Warning Error Fatal (终止程序) 看看另外一个库, 我们为 Juju 开发的 loggo,提供以下级别: Trace Debug I...阅读全文

博文 2019-09-27 17:04:32 cyningsun

golang自定义一个简洁而强大的错误追踪包

一. 前言 1.1 错误追踪需要了解的信息 错误提示语 错误的位置, 如:具体的文件名,错误行号和错误方法等. 1.2 实际情况 golang自带了错误信息包error 只提供了简单的用法, 如errors.New(),和errors.Error()用来传递和获取错误信息. 明显官方的包已经不能满足了, 只能采取其他方法补救, 如: 扩充官方包 自定义错误包 ...... 更多内容, 请查看 https://segmentfault.com/a/119000002073565...阅读全文

博文 2019-10-18 21:32:46 aside section ._1OhGeD

golang自定义一个简洁而强大的错误追踪包

一. 前言 1.1 错误追踪需要了解的信息 错误提示语 错误的位置, 如:具体的文件名,错误行号和错误方法等. 1.2 实际情况 golang自带了错误信息包error 只提供了简单的用法, 如errors.New(),和errors.Error()用来传递和获取错误信息. 明显官方的包已经不能满足了, 只能采取其他方法补救, 如: 扩充官方包 自定义错误包 目前已经有很多人造了这个轮子, 同时也各有特色, 有简单的, 也有复杂的. 这里为了简单使用, 我便选择了扩充官方包, 做一个简单优雅的错误处理包. 1.3 实现目标 通过简单调用, 即可以查看我们需要的信息, 最好是一键调用搞定. 为了照顾使用习惯, 我们就采用跟官方一致的用法, 来完成. 该包已经完成, github地址为 http...阅读全文

Golang常用操作

总结Golang在实际开发中的常用操作,以便快速查找 主要参考The Way to Go 未完待续…… 处理错误 包装一个错误处理函数,避免大量重复if err!=nil的判断 func checkError(err error) { if err != nil { panic(err) } } 使用闭包处理panic错误,对拥有同样签名的函数,比如func handler1(w http.ResponseWriter, r *http.Request) { ... },可以复用panic处理机制, func errorHandler(fn func()) func() { return func() { defer func() { if err, ok := recover().(err...阅读全文

博文 2019-07-25 02:32:39 MrCloudPeak

首发特性:goproxy.cn 现已推出首个 Go 模块代理统计数据 API

前言 这周很值得纪念,首先是 goproxy.cn 已缓存的模块版本总数突破了一百万,这甚至比起 Go 官方的 proxy.golang.org 已缓存的还要多出不少。其次是 goproxy.cn 的日访问量已稳定在千万级,正在朝着亿级进发,目前这在国内我了解到的别的几个同类服务中是最多的了。另外尤为重要的一点是,经过我们的不懈努力,甚至付出了两次事故的代价(详见:status.goproxy.cn),我们终于使得 goproxy.cn 达到了零错误率!现在的 goproxy.cn 可以说是很稳的了,大家可以放心使用。 刚刚在开头稍微为这一个月发生的事情做了个小总结。接下来说一下本次的重点,也就是 goproxy.cn 推出了 Go 模块代理世界中的首个统计数据 API(文档详见:gopro...阅读全文

博文 2020-03-30 21:32:45 煎鱼

leetcode_8

Golang: 思路:这题我也不知道为啥我非要在半夜把这道题做出来,而且还非要丧心病狂的去用两种方式解,从而成功拉低了我的提交正确率。。。这题不想多说,这题我第一种代码极烂,完全不推荐大家使用,只是作为一个思路,即使用正则表达式去做这题。 代码如下: func myAtoi(str string) int { reg:=regexp.MustCompile("^\\s*[+-]?0*\\d{1,10}") if reg!=nil{ res:=reg.FindString(str) if res=="" { return 0 }else{ bytes:=[]byte(res) i:=0 for i阅读全文

博文 2020-02-13 09:32:43 淳属虚构

Go 每日一库之 sjson

简介 在上一篇文章中我们介绍了如何使用gjson快速读取 JSON 串中的值。为了内容的完整性,今天我们介绍一下如何使用sjson快速设置 JSON 串中的值。 快速使用 先安装: $ go get github.com/tidwall/sjson 复制代码后使用: package main import ( "fmt" "github.com/tidwall/sjson" ) const json = `{"name":{"first":"li","last":"dj"},"age":18}` func main() { value, _ := sjson.Set(json, "name.last", "dajun") fmt.Println(value) } 复制代码上面代码通过sjso...阅读全文

首发特性:goproxy.cn 现已推出首个 Go 模块代理统计数据 API

前言 这周很值得纪念,首先是 goproxy.cn 已缓存的模块版本总数突破了一百万,这甚至比起 Go 官方的 proxy.golang.org 已缓存的还要多出不少。其次是 goproxy.cn 的日访问量已稳定在千万级,正在朝着亿级进发,目前这在国内我了解到的别的几个同类服务中是最多的了。另外尤为重要的一点是,经过我们的不懈努力,甚至付出了两次事故的代价(详见:status.goproxy.cn),我们终于使得 goproxy.cn 达到了零错误率!现在的 goproxy.cn 可以说是很稳的了,大家可以放心使用。 刚刚在开头稍微为这一个月发生的事情做了个小总结。接下来说一下本次的重点,也就是 goproxy.cn 推出了 Go 模块代理世界中的首个统计数据 API(文档详见:gopro...阅读全文

博文 2020-03-30 23:35:16 煎鱼eddycjy