如何在Tarantool Docker容器中查看print()结果
我正在使用如何在Tarantool Docker容器中查看print()结果,tarantool,Tarantool,我正在使用tarantool/tarantool:2.6.0Docker image(目前最新版本),并为项目编写lua脚本。我试图了解如何查看调用“print()函数”的结果。在print()不工作的情况下调试代码是相当困难的。 在tarantool控制台中,print()也没有效果 使用简单打印() Docs说print()适用于stdout,但当我通过docker logs-f查看容器日志时,没有看到任何结果 我还尝试将容器的日志驱动程序设置为local。比我得到一次打印到容器日志,但只有
tarantool/tarantool:2.6.0
Docker image(目前最新版本),并为项目编写lua脚本。我试图了解如何查看调用“print()
函数”的结果。在print()不工作的情况下调试代码是相当困难的。在tarantool控制台中,print()也没有效果 使用简单打印() Docs说print()适用于
stdout
,但当我通过docker logs-f
查看容器日志时,没有看到任何结果
我还尝试将容器的日志驱动程序设置为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')
然后从nodeJs连接器调用say_something()
,如下所示:
const TarantoolConnection = require('tarantool-driver');
const conn = new TarantoolConnection(connectionData);
const res = await conn.call('update_links', 'hello');
我得到一个错误:
有什么建议吗?
塔克斯 我想您错过了
io.flush()
afterprint
命令
在我添加了io.flush()
之后,在每次print
调用之后,我的消息开始写入日志(docker logs-f
)
此外,我建议使用log
模块来实现此目的。它在不缓冲的情况下写入stderr
关于连接器中的错误,我认为nodejs连接器根本不支持推送