日志级别:
- ngx.STDERR 标准输出
- ngx.EMERG 紧急报错
- ngx.ALERT 报警
- ngx.CRIT 严重,系统故障, 触发运维告警系统
- ngx.ERR 错误,业务不可恢复性错误
- ngx.WARN 提醒, 业务中可忽略错误
- ngx.NOTICE 提醒, 业务中比较重要信息
- ngx.INFO 信息, 业务琐碎日志信息, 包含不同情况判断等
- ngx.DEBUG 调试
这些都是常量, 越往上等级越高。
函数原型
ngx.log(level, ...)
基本都是在content阶段使用
示例
ngx.log(ngx.ERR, "num:", num)
ngx.log(ngx.INFO, " string:".. str)
注意:print语句是INFO级别
lua中日志完成了, 那如何设置日志格式,日志格式呢, 那就需要使用nginx本身的log_format 进行设置了
log_format 属于 ngx_http_log_module
示例:
log_format main 'remoteaddr−remote_user [timelocal]"request" '
'statusbody_bytes_sent "httpreferer"′'"http_user_agent" "$http_x_forwarded_for"';
这是我使用的日志格式
语法:
log_format name [escape=default|json|none] string ...;
默认的log_format 为
log_format combined 'remoteaddr−remote_user [timelocal]′'"request" statusbody_bytes_sent '
'"httpreferer""http_user_agent"';
现在开始设置日志输出level, 那如何设置日志级别呢, 那就需要使用nginx本身的error_log进行设置了,
error_log属于ngx_core_module
示例:
error_log logs/error.log error;
语法:
error_log file [level];
默认的error_log为
error_log logs/error.log error;
上下文为:
main, http, mail, stream, server, location
level 等级
debug, info, notice, warn, error, crit, alert, emerg
大于等于设置等级的日志均会被记录
若要设置debug level则在编译的时候添加--with-debug 即 ./configure --with-debug
因此,若要打印lua日志输出信息,因为lua日志输出信息中最大等级为info,所以我们也要设置error.log为info级别
即:
error_log /opt/app/openresty/nginx/logs/error.log info;