草庐IT

g_log_structured_standard

全部标签

performance - 戈朗 : right way to store map structure in lru cache

我有一个像这样的结构:map[key]value,我想通过一个字符串将它存储在"github.com/golang/groupcache/lru"中键,例如cacheKey。这是我的问题:我发现每当我想更新缓存项时,我都需要先获取:item:=cache.Get(cacheKey)ifv,ok:=item[key];ok{item[key]=new_valuecache.Add(cacheKey,item)}这样做是否正确?或者,正如一些人所建议的,我需要重新设计我的结构,以确保我可以在任何时候更新它时执行cache.Add(cacheKey,item)。或者,我什至应该使用像cach

logging - golang 的日志框架,具有适合生产的旋转日志文件和过滤日志级别

我在github.com找到了一些golang的日志框架。Logrus是很多开发者推荐的。但是它没有过滤日志级别。任何人都可以向我推荐一个具有上述功能并且应该适合生产的日志框架吗? 最佳答案 根据Logrus文档,您可以“过滤”日志级别以分派(dispatch)它或不记录它。请参阅Logrus的github存储库中README.md的级别日志记录和Hooks部分。如果你想要另一个,seelog是我在某些项目中使用的。高度可配置,它应该满足您的需求。 关于logging-golang的日志

google-app-engine - 无法使用 appengine/log 找到日志

我有这个代码://main.gopackagemagnumimport("net/http""google.golang.org/appengine""google.golang.org/appengine/log")funcinit(){http.HandleFunc("/tasks/backup",handler)}funchandler(whttp.ResponseWriter,r*http.Request){ctx:=appengine.NewContext(r)log.Debugf(ctx,"TestingcrontasksusingGo")}//cron.yamlcron:

go - 带有两个外键的中间模型 : file structure?

目标是创建一个中间模型(user_product),它有两个外键:user和product。我们能否通过外部文件(以某种方式)中的用户和产品结构来实现这一点,或者我们必须将它们与UserProduct放在同一个文件中,就像在文档中一样?此时,将它们放在外部并在UserProduct中导入它们,当然会抛出导入循环错误。结构:app/models/product.gouser.gouser_product.go问题是,如果我使用import"github.com/somehow/somehow/models"在user_product中导入product.go,显然它还导入了user_pr

logging - 使用 io.Multiwriter 跨包/子包创建日志

我是Go的新手。目前,我正在编写一个工具来捕获所有stdout输出,并将它们合并到一个新文件中。为此,我使用了io.Multiwriter。但是,我的问题在于试图跨包和子包捕获所有stdout输出。目前,我的方法是创建一个新包,它对所有日志记录具有独占作用。每当其他包/子包之一有一些输出字符串时,我会将字符串发送到日志包,然后将多写到日志和标准输出。这听起来合理吗?如果是这样,通用日志记录包API应该是什么样的?另外,将用于输出/日志记录的字符串传递到日志包的好方法是什么?谢谢! 最佳答案 我想我会很好地使用已经可用的记录器包来满足

go - vim 去 : how to see the log of :GoTestFunc -v?

当我使用:GoTestFunc-v时,我只在测试失败时才看到日志,即使测试成功我也希望看到结果。谢谢 最佳答案 如果测试成功,vim-go总是清除输出窗口1.您可以破解本地vim脚本以更改行为,或在问题跟踪器中提交功能请求。 关于go-vim去:howtoseethelogof:GoTestFunc-v?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/46440638/

google-app-engine - 在 Go 中部署到 Google App Engine Standard 时如何获取 RemoteAddr(远程 IP 地址)

我想获取客户端/浏览器IP地址以限制我的GoogleAppEngineStandard/Go网络应用程序中未经身份验证的客户端。在已部署的应用程序中,r.RemoteAddr返回空字符串。枚举请求header(r.Header[string][]string)仅提供以下条目。Content-LengthX-Appengine-CitylatlongX-Appengine-RegionUpgrade-Insecure-RequestsAccept-LanguageX-Cloud-Trace-ContextX-Appengine-CountryX-Appengine-CityHostCac

google-app-engine - 如何在 Google App Engine Standard Env for Go 中获取 request.RemoteAddr 和 X-AppEngine-Country、Region 等的输出?

我有一个在GoogleAppEngine标准环境中运行的服务,该服务是用Go编写的,配置为在部署时使用最新的运行时(api_version:go1-当前为Go1.8)。在这项服务中,我出于各种目的检查请求header。funcextractHeaders(reshttp.ResponseWriter,req*http.Request){ctx:=appengine.NewContext(req)clientIPAddress,_,_:=net.SplitHostPort(req.RemoteAddr)//Outputisblankcountry:=req.Header.Get("X-A

ssl - HTTP 客户端错误 : asn1: structure error: base 128 integer too large

我有一个非常基本的Go应用程序,代码如下:varclient=&http.Client{Timeout:time.Duration(30*time.Second),}//skippedpayload...response,err:=client.Post(apiUrlLogin,contentType,&payload)err返回:Posthttps://xxx/api/login:tls:failedtoparsecertificatefromserver:asn1:structureerror:base128integertoolargeGo版本为goversiongo1.10.2

来自 go 容器的 Docker 日志(log 和 fmt)在 init 后停止

我正在开发一个由许多go容器组成的应用程序。我用dockercompose管理它们。最近我一直无法从中获取日志。当我运行“dockerlogs[container-name]”时,我只会看到在init期间为我的应用程序中的包创建的日志,以及在服务开始监听之前的main期间创建的日志。对log.Println或fmt.Println的后续调用不会出现在“dockerlogs”的输出中。你知道会发生什么吗? 最佳答案 您可能想将日志写入/dev/stdout或者简单地使用log.SetOutput(os.Stdout)来自log包裹