Skip to content

错误日志配置

配置错误日志可以记录错误信息,用于故障排查。

基本配置

默认错误日志

nginx
error_log /var/log/nginx/error.log;

指定日志级别

nginx
error_log /var/log/nginx/error.log warn;

日志级别

级别说明

debug

  • 调试信息
  • 仅用于开发环境

info

  • 一般信息
  • 记录重要事件

notice

  • 通知信息
  • 记录需要注意的事件

warn

  • 警告信息
  • 记录潜在问题

error

  • 错误信息
  • 记录错误事件

crit

  • 严重错误
  • 记录严重问题

alert

  • 警报信息
  • 记录需要立即处理的问题

emerg

  • 紧急错误
  • 记录系统无法继续运行的问题

完整配置

生产环境配置

nginx
error_log /var/log/nginx/error.log warn;

server {
    listen 80;
    server_name www.example.com;

    error_log /var/log/nginx/error.log warn;

    root /var/www/html;
}

多日志文件

主错误日志

nginx
error_log /var/log/nginx/error.log warn;

服务器错误日志

nginx
server {
    error_log /var/log/nginx/server_error.log warn;
}

Location错误日志

nginx
location /api/ {
    error_log /var/log/nginx/api_error.log warn;
}

条件错误日志

基于状态码

nginx
map $status $loggable {
    ~^[5]  1;
    default 0;
}

error_log /var/log/nginx/error.log warn if=$loggable;

基于响应时间

nginx
map $request_time $loggable {
    ~^[5-9]  1;
    default 0;
}

error_log /var/log/nginx/error.log warn if=$loggable;

完整示例

生产环境配置

nginx
error_log /var/log/nginx/error.log warn;

map $status $loggable {
    ~^[5]  1;
    default 0;
}

server {
    listen 80;
    server_name www.example.com;

    error_log /var/log/nginx/server_error.log warn if=$loggable;

    root /var/www/html;

    location /api/ {
        error_log /var/log/nginx/api_error.log warn;
    }
}

错误日志分析

查看错误

bash
tail -f /var/log/nginx/error.log

统计错误

bash
grep "error" /var/log/nginx/error.log | wc -l

查看特定错误

bash
grep "connection" /var/log/nginx/error.log

常见问题

错误日志过多

原因: 日志级别设置过低

解决: 提高日志级别

nginx
error_log /var/log/nginx/error.log error;

错误日志未记录

原因: 日志级别设置过高

解决: 降低日志级别

nginx
error_log /var/log/nginx/error.log debug;

总结

错误日志配置的关键点:

  • error_log:启用错误日志
  • 日志级别:设置合适的日志级别
  • 多日志文件:为不同位置设置不同的日志文件
  • 条件日志:基于条件记录错误日志
  • 日志分析:分析错误日志排查问题

合理配置错误日志,记录错误信息,用于故障排查。