共计 2607 个字符,预计需要花费 7 分钟才能阅读完成。
刚学习openresty时,匆匆看了看lua基本语法知识,就开始上手写些简单的示例demo。期间总会遇到报错,需要调试,此时就可以在openresty中公用ngx.log()方法来打印输出到日志里,目前也就只知道这个方式方式来调试。。。
nginx 错误日志级别有以下几个
-- 越上面,日志等级越高,信息越少
-- 指定了日志级别只会输出比当前级别高的日志,比如当前级别为err,则warn/notice/info/debug级别的信息不会记录在日志中
--- OpenResty 里面的 print 语句是 INFO 级别
ngx.STDERR -- 标准输出
ngx.EMERG -- 紧急报错
ngx.ALERT -- 报警
ngx.CRIT -- 严重,系统故障,触发运维告警系统
ngx.ERR -- 错误,业务不可恢复性错误
ngx.WARN -- 告警,业务中可忽略错误
ngx.NOTICE -- 提醒,业务比较重要信息
ngx.INFO -- 信息,业务琐碎日志信息,包含不同情况判断等
ngx.DEBUG -- 调试
错误日志级别在nginx http块外配置
[root@nginx-cluster conf]# cat nginx.conf
worker_processes 4;
events {
worker_connections 65535;
}
# 配置info级别
error_log logs/error.log info;
http {
....略....
}
info级别日志样例
2021/05/02 01:01:10 [warn] 1567#0: 65535 worker_connections exceed open file resource limit: 1024
2021/05/02 01:02:25 [alert] 1630#0: lua_code_cache is off; this will hurt performance in /usr/local/openresty/nginx/conf/nginx.conf:12
2021/05/02 01:02:25 [warn] 1630#0: 65535 worker_connections exceed open file resource limit: 1024
2021/05/02 01:02:34 [alert] 1659#0: lua_code_cache is off; this will hurt performance in /usr/local/openresty/nginx/conf/nginx.conf:12
2021/05/02 01:02:34 [warn] 1659#0: 65535 worker_connections exceed open file resource limit: 1024
2021/05/02 01:02:34 [alert] 1661#0: lua_code_cache is off; this will hurt performance in /usr/local/openresty/nginx/conf/nginx.conf:12
2021/05/02 01:02:34 [notice] 1661#0: using the "epoll" event method
2021/05/02 01:02:34 [warn] 1661#0: 65535 worker_connections exceed open file resource limit: 1024
2021/05/02 01:02:34 [notice] 1661#0: openresty/1.17.8.2
2021/05/02 01:02:34 [notice] 1661#0: built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
2021/05/02 01:02:34 [notice] 1661#0: OS: Linux 3.10.0-862.el7.x86_64
2021/05/02 01:02:34 [notice] 1661#0: getrlimit(RLIMIT_NOFILE): 1024:4096
2021/05/02 01:02:34 [notice] 1663#0: start worker processes
2021/05/02 01:02:34 [notice] 1663#0: start worker process 1664
2021/05/02 01:02:34 [notice] 1663#0: start worker process 1665
2021/05/02 01:02:34 [notice] 1663#0: start worker process 1666
2021/05/02 01:02:34 [notice] 1663#0: start worker process 1667
2021/05/02 01:02:45 [info] 1666#0: *1 client 192.168.44.145 closed keepalive connection
2021/05/02 01:03:34 [info] 1667#0: *2 client 192.168.44.145 closed keepalive connection
一个简单的server样例,使用ngx.log()来调试打印一些变量
server {
listen 80;
location / {
content_by_lua_block {
local num = 55
local str = "string"
local obj
ngx.log(ngx.ERR, "num:", num)
ngx.log(ngx.INFO, " string:", str)
print([[i am print]])
ngx.log(ngx.ERR, " object:", obj)
}
}
}
日志输出
2021/05/02 01:05:34 [error] 61610#0: *10 [lua] content_by_lua(nginx.conf:26):5:
num:55, client: 192.168.44.145, server: , request: "GET /hello HTTP/1.1",
host: "192.168.44.145"
2021/05/02 01:05:38 [error] 61610#0: *10 [lua] content_by_lua(nginx.conf:26):7:
object:nil, client: 192.168.44.145, server: , request: "GET /hello HTTP/1.1",
host: "192.168.44.145"
正文完