Nginx的error_log级别由error_log指令的第二个参数控制,不可修改日志内容调整;默认为error(非warn),常见级别从低到高为debug、info、notice、warn、error、crit、alert、emerg,debug需编译启用--with-debug,修改后须nginx -t校验并reload生效。

在 Nginx 中,error_log 的日志级别不能通过修改日志内容本身来调整,而是由 error_log 指令的第二个参数(即日志级别)控制。该级别决定了哪些错误信息会被写入日志文件。
确认当前 error_log 配置
先检查 Nginx 配置中是否已显式设置了日志级别,例如:
error_log /var/log/nginx/error.log warn;如果没有指定级别,默认为 warn;如果只写了路径,如 error_log /var/log/nginx/error.log;,那也等价于 warn。
可选的日志级别及其含义
Nginx 支持以下从低到高(即从“最少”到“最多”记录)的日志级别:
- debug:最详细,包含内存分配、事件循环、HTTP 处理细节等,仅调试时启用
- info:一般性运行信息,如模块加载、配置重载成功
- notice:需要注意但不紧急的事件,如服务器启动/关闭提示
- warn:潜在问题,如证书过期警告、非致命配置建议(默认级别)
- error:发生错误但连接仍可能继续,如 upstream 超时、文件不可读
- crit:严重错误,如无法绑定端口、共享内存初始化失败
- alert:必须立即处理,如工作进程异常退出
- emerg:系统不可用,如无法创建日志文件或监听 socket
修改日志级别并生效
编辑主配置文件(通常是 /etc/nginx/nginx.conf)或对应 server 块中的 error_log 行:
保存后执行:
sudo nginx -t && sudo nginx -s reload注意:debug 级别需在编译时启用 --with-debug,否则会忽略该设置并退回到 info 或更高一级。
按作用域分别设置(可选进阶)
你可以为不同上下文设置不同级别:
- 全局(main 块):影响所有 worker 进程和核心错误
- http 块:影响 HTTP 模块相关错误(如 SSL 握手失败)
- server 或 location 块:只对匹配的虚拟主机或路径生效(但部分错误如 worker 启动失败仍走全局)
例如,在某个 server 中单独降级日志量:
server {error_log /var/log/nginx/myapp_error.log warn;
# ...
}











