error_log设为emerg级别仅记录系统无法运行的致命事件;nginx用error_log /path/emerg,apache用errorloglevel emerg,均需重载生效且确保进程有日志路径写权限。

error_log 仅记录紧急信息,就是只保留最高严重级别的错误,对应日志级别为 emerg(emergency)。这个级别表示系统已无法继续运行,必须立即干预,比如进程崩溃前兆、关键资源彻底耗尽等。
Nginx 和 Apache 都支持该级别,但配置方式和实际效果略有差异,需按服务类型分别处理:
Nginx:直接设为 emerg 级别
- 在
nginx.conf的main(全局)、http、server或location块中添加或修改:error_log /var/log/nginx/error.log emerg;
-
emerg是最高等级,它只记录 emerg 级事件,不会包含alert、crit或更低级别内容。 - 注意:该设置需配合
nginx -s reload生效;语法校验用nginx -t。 - 实际中
emerg日志极少出现,通常只在 master 进程启动失败、内存分配完全失败、或内核拒绝关键系统调用时写入。
Apache:使用 ErrorLogLevel 设 emerg
- Apache 2.4+ 使用
ErrorLogLevel指令(旧版用LogLevel),支持模块级控制,但emerg是全局可用的最低输出量级别:ErrorLogLevel emerg
- 也可限定到特定模块(如仅 core 级紧急事件):
ErrorLogLevel core:emerg
- 同样需重载服务:
sudo systemctl reload apache2(Debian/Ubuntu)或sudo apachectl graceful(RHEL/CentOS)。 - 注意:
emerg在 Apache 中语义与 Nginx 一致——仅记录危及服务存续的致命事件,例如子进程创建失败、监听套接字初始化崩溃。
通用前提:确保日志路径可写且未被覆盖
- 即使级别设为
emerg,若 Apache/Nginx 工作进程(如www-data、nginx用户)无权写入日志文件或父目录,依然不会落盘。 - 验证命令:
sudo -u www-data touch /var/log/apache2/error.log 2>/dev/null || echo "权限不足" sudo -u nginx touch /var/log/nginx/error.log 2>/dev/null || echo "权限不足"
不复杂但容易忽略。











