首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在与kubernetes和golang一起使用delve调试器时显示应用程序的原始日志?

如何在与kubernetes和golang一起使用delve调试器时显示应用程序的原始日志?
EN

Stack Overflow用户
提问于 2022-08-24 14:08:41
回答 1查看 92关注 0票数 1

我正在使用Kubernetes和helm图表在系统中部署一些微服务应用程序。其他服务将使用Netcat来等待waiter-service的运行,但是这个waiter-service服务在由delve启动时似乎不能正常工作,所以我想检查它的日志。

dockerfile的入口点如下所示:

代码语言:javascript
复制
/dlv --listen=:40000 --log --log-output=rpc --allow-non-terminal-interactive=true 
--api-version=2 exec /server -- appname --config=configfile.yaml

我收到的日志如下:

代码语言:javascript
复制
2022-08-24T13:22:11Z debug layer=rpc serving JSON-RPC on new connection
2022-08-24T13:22:11Z debug layer=rpc <- RPCServer.SetApiVersion(api.SetAPIVersionIn{"APIVersion":2})
2022-08-24T13:22:11Z debug layer=rpc -> *api.SetAPIVersionOut{} error: ""
2022-08-24T13:22:11Z debug layer=rpc <- RPCServer.IsMulticlient(rpc2.IsMulticlientIn{})
2022-08-24T13:22:11Z debug layer=rpc -> *rpc2.IsMulticlientOut{"IsMulticlient":false} error: ""
2022-08-24T13:22:11Z debug layer=rpc (async 3) <- RPCServer.State(rpc2.StateIn{"NonBlocking":true})
2022-08-24T13:22:11Z debug layer=rpc (async 3) -> rpc2.StateOut{"State":{"Pid":14,"Running":false,"Recording":false,"CoreDumping":false,"currentThread":{"id":14,"pc":4652512,"file":"/usr/lib/go-1.18/src/runtime/rt0_linux_amd64.s","line":8,"function":{"name":"_rt0_amd64_linux","value":4652512,"type":0,"goType":0,"optimized":true},"goroutineID":0,"ReturnValues":null,"CallReturn":false},"Threads":[{"id":14,"pc":4652512,"file":"/usr/lib/go-1.18/src/runtime/rt0_linux_amd64.s","line":8,"function":{"name":"_rt0_amd64_linux","value":4652512,"type":0,"goType":0,"optimized":true},"goroutineID":0,"ReturnValues":null,"CallReturn":false}],"NextInProgress":false,"WatchOutOfScope":null,"exited":false,"exitStatus":0,"When":""}} error: ""
2022-08-24T13:22:11Z debug layer=rpc <- RPCServer.Recorded(rpc2.RecordedIn{})
2022-08-24T13:22:11Z debug layer=rpc -> *rpc2.RecordedOut{"Recorded":false,"TraceDirectory":""} error: ""

但是当我用普通命令运行它时

代码语言:javascript
复制
/server appname --config=configfile.yaml

我的预期日志如下:

代码语言:javascript
复制
2022/08/24 07:43:43 maxprocs: Leaving GOMAXPROCS=16: CPU quota undefined
2022-08-24T07:43:44.976Z    INFO    database/pool.go:35 database configuration  {"MaxConns": 8, "RetryCount": 10, "RetryInterval (seconds)": 5}
2022-08-24T07:43:44.976Z    INFO    v4@v4.15.0/conn.go:355  Dialing PostgreSQL server   {"host": "postgres-infras.emulator.svc.cluster.local"}
2022-08-24T07:43:44.980Z    INFO    nats/jetstream.go:335   nats jetstream connected
2022-08-24T07:43:45.090Z    INFO    zap/grpclogger.go:92    [core][Channel #1 SubChannel #2] Subchannel Connectivity change to READY    {"system": "grpc", "grpc_log": true}

问题是,我如何读取实际日志,以了解为什么waiter-service不能工作,而其他人可以呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-25 02:39:52

您可以添加以下选项:

代码语言:javascript
复制
 --continue --headless

相关问题:Go delve --continue

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73474644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档