2014-10-04 130 views
8

我想在我的lua代码中插入日志点(io.write),它本身是nginx配置(对于nginx使用HttpLuaModule)。 如何做到这一点? 访问和错误日​​志不显示它们。如何在nginx配置中调试lua代码?

回答

15

在nginx下运行时,应该使用ngx.log。例如:

ngx.log(ngx.STDERR, 'your message here')

有关工作示例,请参阅http://linuxfiddle.net/f/77630edc-b851-487c-b2c8-aa6c9b858ebb

有关文档,看http://wiki.nginx.org/HttpLuaModule#ngx.log

+0

有没有更改日志消息格式的方法?目前,我收到一个更长的消息,与日期,主机等 。 “2017/03/03 05:31:22 [] 44#0:* 17 [lua] content_by_lua(proj1.conf:110):3:您的消息在这里,客户端:172.18.0.1,服务器:” – maamaa 2017-03-03 05:37:11

5

在nginx的另一个选项的Lua调试(除了 “印刷”)是使用支持远程调试的Lua IDE。我发布instructions关于如何使用ZeroBrane Studio IDE完成这项工作。设置完成后,您可以获得大部分您期望的调试功能,如步进,断点,变量检查,堆栈跟踪以及远程运行Lua命令的控制台。

+0

谢谢保罗我会尝试这种方法。我更喜欢这种工作方式,而不是始终打印值。 – 2016-09-24 13:40:53