openresty ngx.log 上下文
时间: 2023-08-26 07:07:06 浏览: 62
在OpenResty中,ngx.log()函数用于打印日志信息。它的定义如下:
```
ngx.log(log_level, ...)
```
其中,log_level是日志级别,可以是以下几个值之一:
- ngx.ERR:错误级别
- ngx.WARN:警告级别
- ngx.NOTICE:通知级别
- ngx.INFO:信息级别
- ngx.DEBUG:调试级别
...是要打印的日志信息,可以是一个或多个参数。ngx.log()函数的调用需要在ngx.ctx上下文中进行。ngx.ctx是OpenResty中的一个特殊变量,它可以在请求处理过程中传递数据,并且在不同的处理阶段中保持不变。这使得我们可以在不同的处理阶段中打印同一个日志信息,从而更好地跟踪请求的处理过程。例如:
```
location / {
content_by_lua_block {
ngx.ctx.msg = "hello world"
ngx.log(ngx.INFO, "handle request")
ngx.exec("/foo")
}
}
location /foo {
content_by_lua_block {
ngx.log(ngx.INFO, "handle request, msg: ", ngx.ctx.msg)
ngx.exit(200)
}
}
```
在这个例子中,我们在第一个location中设置了ngx.ctx.msg变量,并在ngx.log()函数中打印了一个日志信息。然后,我们使用ngx.exec()函数将请求转发到另一个location中。在第二个location中,我们通过ngx.log()函数再次打印了一个日志信息,并将ngx.ctx.msg变量的值也输出了出来。由于ngx.ctx是在整个请求周期中保持不变的,所以在第二个location中我们可以直接访问到第一个location中设置的ngx.ctx.msg变量的值。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)