2014-10-04 129 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