gpt4 book ai didi

tarantool - 如何在 Tarantool Docker 容器中查看 print() 结果

转载 作者:行者123 更新时间:2023-12-03 17:10:26 26 4
gpt4 key购买 nike

我正在使用 tarantool/tarantool:2.6.0 Docker 镜像(目前最新的)和为项目编写 lua 脚本。我试图找出如何查看调用结果 print()功能。如果没有 print() 工作,调试我的代码非常困难。
在 tarantool 控制台 print() 也没有效果。
使用简单的 print()
文档说 print() 适用于 stdout ,但是当我通过 docker logs -f <CONTAINER_NAME> 观看容器的日志时看不到任何结果
我还尝试将容器的日志驱动程序设置为 local .比我一次打印到容器的日志,但只有一次......
容器的/var/log目录总是空的。
使用 box.session.push()
使用 box.session.push()在控制台中工作正常,但是当我在 lua 脚本中使用它时:

-- app.lua
function log(s)
box.session.push(s)
end

-- No effect
log('hello')

function say_something(s)
log(s)
end

box.schema.func.create('say_something')
box.schema.user.grant('guest', 'execute', 'function', 'say_something')
然后调用 say_something()从 nodeJs 连接器是这样的:
const TarantoolConnection = require('tarantool-driver');

const conn = new TarantoolConnection(connectionData);
const res = await conn.call('update_links', 'hello');
我得到错误:
enter image description here
有什么建议么?
谢谢!

最佳答案

我想你错过了io.flush()print 之后命令。
在我添加 io.flush() 之后在每个 print 之后调用我的消息开始写入日志(docker logs -f <CONTAINER_NAME>)。
我也建议使用 log用于此目的的模块。它在没有缓冲的情况下写入标准错误。
关于连接器中的错误,我认为 nodejs 连接器根本不支持推送。

关于tarantool - 如何在 Tarantool Docker 容器中查看 print() 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64370120/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com