OpenResty系统信息
OpenResty在表ngx.conf里提供了六个功能接口,可以获取自身的一些信息:
- debug:是否算Debug版本
- prefix:工作目录,即启动时“-p”参数指定的目录
- nginx_version:大版本号,即内部NGINX的版本号
- nginx_configure:编译的使用的配置参数
- subsystem:当前所在的子系统,取值为“http”或“stream”
- ngx_lua_version:当前所在子系统的版本号
注意: prefix和nginx_configure这两个接口是函数的形式。
接口的示例代码如下:
ngx.say(nginx.config.debug)
ngx.say(nginx.config.prefix())
ngx.say(nginx.config.nginx_version)
ngx.say(nginx.config.nginx_configure())
ngx.say(nginx.config.subsystem())
ngx.say(nginx.config.ngx_lua_version())OpenResty运行日志
函数ngx.log(log_level)记录罗OpenResty的运行日志,用法类似Lua的标准库函数print,可以接受任意多个参数,记录任意信息。
print()=ngx.NOTICE
ngx.log的第一个参数是日志级别。
- ngx.STDERR:日志直接打印到标准输出,最高级别的日志
- ngx.EMERG:发生了紧急情况(emergency),需要立即处理
- ngx.ALERT:发生了严重错误,可能需要报警给运维系统
- ngx.CRIT:发生了严重错误(critical)
- ngx.ERR:普通的错误,业务中发生了意外
- ngx.WARN:警告信息,业务正常,但可能需要检查警告的来源
- ngx.NOTICE:提醒信息,仅仅算告知,通常可以忽略
- ngx.INFO:一般的信息
- ngx.DEBUG:调试可用的信息,只有debug版本才会启用
业务逻辑关键点INFO或者WARN,捕获error级别的错误信息
OpenResty时间日期
对于Web服务来说,能够随时获取正确的时间与日期是非常重要的。OpenResty为此提供罗很多时间日期相关的函数,可以满足绝大多数场景的应用。
这些时间日期函数不会引发昂贵的系统调用(ngx.updatetime除外),几乎没有成本。所以在应用程序中应对尽量使用它们操作时间而不是使用Lua标准库里的os。
当前时间
ngx.say(ngx.today()) #本地时间,格式是“yyyy-mm-dd”
ngx.say(ngx.localtime()) #本地时间,格式是“yyyy-mm-dd hh:mm:ss”
ngx.say(ngx.utctime()) #utc时间,格式是“yyyy-mm-dd hh:mm:ss”时间戳
ngx.time
ngx.now时间戳
评论 (0)