游戏人生
首页
(current)
GameDevTools
登陆
|
注册
个人中心
注销
OpenResty 教程
OpenResty 简介
OpenResty Ubuntu安装
OpenResty 第一个例子
OpenResty 目录结构
OpenResty 启动和关闭
OpenResty 热重启
OpenResty 执行lua代码
OpenResty 执行lua文件
OpenResty 网站服务
OpenResty 访问指定网页
OpenResty 多网页网站
OpenResty 日志
OpenResty 流水线
OpenResty ip黑名单
OpenResty 反向代理
OpenResty 负载均衡
<< OpenResty 多网页网站
OpenResty 流水线 >>
OpenResty 日志
每个软件都有日志系统,记录软件的运行状态以及出错日志,可以帮助开发者更好的调试程序定位问题。 OpenResty 提供函数 `ngx.log(log_level, ...)`记录 OpenResty 的运行日志,用法很类似 Lua 的标准库函数 `print`,可以接受任意多个参数,记录任意信息。 OpenResty 同时替换了全局函数`print`,它等价于`ngx.log(ngx.NOTICE, ...)`。 ------------ #### 1. 日志等级 日志是分等级的,特定级别的日志才会真正写入到日志文件,默认是 error级别才写入log文件。 日志等级从高到低依次是: ```shell ngx.STDERR :日志直接打印到标准输出,最高级别 ngx.EMERG :紧急错误 ngx.ALERT :严重错误,需要报警给运维系统 ngx.CRIT :严重错误 ngx.ERR :普通错误 ngx.WARN :警告 ngx.NOTICE :提醒 ngx.INFO :一般信息 ngx.DEBUG :调试信息,debug版本才会生效 ``` 在日常开发中,关键点使用 `INFO` 或 `NOTICE` 级别的日志来调试代码即可。ERR用来做错误异常捕获。 只要改动配置文件中的 `error_log` 设置,就可以开启低等级的日志。 <font color=red>error.log` 是直接写磁盘的阻塞操作,没有缓冲也没有异步,对性能有很大影响。 正式环境下,一定要将日志级别设置到默认,减少日志写入。 </font> ------------ #### 2.日志实例 新建lua脚本 `testlog.lua`  代码如下 ```shell ngx.log(ngx.DEBUG,"debug log") ngx.log(ngx.INFO,"info log") ngx.log(ngx.NOTICE,"notice log") ngx.log(ngx.WARN,"warn log") ngx.log(ngx.ERR,"error log") ngx.log(ngx.CRIT,"crit log") ngx.log(ngx.ALERT,"alert log") ngx.log(ngx.EMERG,"emerg log") ngx.log(ngx.STDERR,"stderr log") ngx.say("testlog") ``` 不用重启 访问网址 ```shell http://localhost:8080/testlog ```  查看日志文件 `logs/error.log `  可以看到,只有 ERR 以及更高级别的日志,输出到了日志文件里。 ------------ #### 3. 开启更多日志 在配置文件中,日志的设置语句格式如下: ```shell error_log file level; ``` level就是日志等级,有以下等级可以设置 ```shell debug|info|notice|warn|error|crit|alert|emerg ``` 只有不低于这个等级的日志,才会记录到日志文件中。 下面测试开启所有日志。 将日志等级设置为 `debug`,debug是最低等级的日志。 ```shell error_log logs/error.log debug; ``` 完整的配置文件内容如下 ```shell worker_processes 1; error_log logs/error.log debug; events { worker_connections 1024; } http { server { listen 8080; location ~ ^/(\w+) { default_type text/html; content_by_lua_file service/http/$1.lua; } } } ``` 重启 OpenResty: ```shell nginx -p `pwd`/ -s reload ``` 再次访问网址 ```shell http://localhost:8080/testlog ``` 查看日志  所有的日志都存入了 log文件。
<< OpenResty 多网页网站
OpenResty 流水线 >>
提交
5ec8ec15f9046103c7132d0f