Nginx 是高性能的 HTTP 和反向代理服务器,Apache是广泛用于提供网站和应用服务。他们的强大功能包含了灵活的日志记录能力,允许管理员根据需要配置不同的日志级别。正确理解和使用这些日志级别对于监控、调试和保障你的服务稳定运行至关重要。

 

Nginx /Apache 日志级别

Nginx / Apache 定义了一系列的日志级别,从详尽的调试信息到关键的系统错误,不同级别的日志为不同的运维和开发需求提供了支持。日志级别从最详细到最概要依次为:debug、info、notice、warn、error、crit、alert、emerg 共八种

1、Debug

debug 级别提供了最为详细的日志记录,包括处理请求的每一步。

它对开发者调试配置或理解请求的处理流程非常有用。

由于 debug 级别会产生大量日志,很耗占磁盘,因此推荐仅在开发或调试环境中使用。

2、Info

info 级别记录一般的正常运行时信息。这些信息对于理解系统的正常运作很有帮助,但它们不包含错误或警告信息。

3、Notice

notice 级别用于记录重要的正常操作信息,如服务器启动或停止,这有助于管理员跟踪系统状态变化。

4、Warn / Warning

warn 级别记录潜在的异常情况,这些情况可能需要管理员的注意但并非错误。例如,尝试使用了过时的配置指令。

5、Error

error 级别记录阻止正常请求处理的错误事件,这是默认的日志级别,适用于大多数生产环境。

6、Crit / Critical

crit 级别记录严重的错误,这些错误通常会影响到服务的部分功能或性能。

7、Alert

alert 级别用于记录需要立即采取行动的告警错误,以防止系统或数据的进一步损害。

8、Emerg / Panic

emerg 级别记录系统不可用的紧急严重错误,通常指示着严重的配置错误或硬件故障。

 

参考资料http://nginx.org/en/docs/ngx_core_module.html#error_log

Syntax: error_log file [level];
Default:
error_log logs/error.log error;
Context: mainhttpmailstreamserverlocation

Configures logging. Several logs can be specified on the same configuration level (1.5.2). If on the main configuration level writing a log to a file is not explicitly defined, the default file will be used.

The first parameter defines a file that will store the log. The special value stderr selects the standard error file. Logging to syslog can be configured by specifying the “syslog:” prefix. Logging to a cyclic memory buffer can be configured by specifying the “memory:” prefix and buffer size, and is generally used for debugging (1.7.11).

The second parameter determines the level of logging, and can be one of the following: debuginfonoticewarnerrorcritalert, or emerg. Log levels above are listed in the order of increasing severity. Setting a certain log level will cause all messages of the specified and more severe log levels to be logged. For example, the default level error will cause errorcritalert, and emerg messages to be logged. If this parameter is omitted then error is used.

 

日志级别示例

在 Nginx 配置文件中,使用 error_log 指令来指定日志文件的位置和级别。例如:

error_log /var/log/nginx/error.log;                  # 默认级别 error

error_log /var/log/nginx/error.log warn;       # 指定级别 warn

第二条指令设置了日志文件路径为 /var/log/nginx/error.log,并将日志级别设为 warn。

 

日志级别场景

1)开发和测试环境:使用 debug 级别以获取最详细的日志,帮助调试配置和应用,修正开发错误。

2)预发环境:安全和性能调优可将日志级别设置为 warn 或 info,以便更好地监控潜在的问题。

3)生产环境:推荐使用默认的 error 级别,因为它既能提供错误信息,又不会产生过多的日志。

 

 

参考推荐

Nginx 错误日志配置详解

Nginx 日志格式详解

Apache 日志格式详解

Nginx 配置文件详解

Nginx 配置文件禁止访问目录或文件