如何禁用Nginx日志记录?


27

我在配置文件中有以下内容

server {
    listen       80;
    server_name  _;
    access_log  /var/log/nginx/access.log  main;
  ...

server {
    listen       80;
    server_name  example.com
    access_log  off;
    error_log off;

但是它仍然保持example.com虚拟主机的日志记录。我究竟做错了什么?


您打算在这里“主要”做什么?
埃文·卡罗尔

我已将此问题标记为要删除,因为最受支持的答案与语法错误有关。它与关闭错误日志记录无关。它没有可搜索的错误消息,我不确定您要问什么,或者为什么提供的答案不能解决您的问题。
埃文·卡罗尔

Answers:


31

;server_name指令后缺少您。access_log并且off被视为其他server_names。


12
另外,关闭error_log; 不会关闭错误日志记录。它只是将错误记录到名为“ off”的文件中。无法完全禁用错误日志记录,最接近的错误代码是error_log / dev / null crit;这几乎是同一回事,因为不会出现错误日志。
kolbyjack

6
实际上,这样做access_log off;会使nginx将日志写入名为的文件中off。因此,这不是正确的答案。
user965363 2011年

4
实际上,这是正确的答案。“将“ off”用作唯一参数将清除当前级别的所有access_log指令”:wiki.nginx.org/HttpLogModule#access_log。error_log(由@kolbyjack添加)不是正确的,但是我认为问题是关于访问的,而不是错误日志。nginx的某些非常旧的版本可能不支持此功能。
rvs

使用off代替有优势/dev/null吗?如果off导致某些版本的Nginx写入名为的文件off,则/dev/null似乎是一个更通用的解决方案。
Joe Mornin

20

当然,您可以完全禁用日志记录。只需将日志文件指向/ dev / null即可。;)

access_log  /dev/null;
error_log /dev/null;

3
我也用这个。/dev/null是真正的目的地;而“ off”是某个目录中的文件
edoceo

4
这不是官方推荐的方法。使用“关闭”是正确的方法。
user1751825

我将其设置为/ var / null,现在它开始将日志保存到var目录中名为“ null”的文件中。应该仅是“ / dev / null”吗?
加拉夫

13

您可以access_log通过使用禁用

access_log off;

但是,如果要禁用error_log,请不要在conf中使用error_log选项。


2
这如何添加到先前的答案中?
Dave M

1
因为,先前的答案没有用!不要使用
MustafaÖzgür'Apr

2
如果配置中不包含error_log选项,nginx默认为“ error_log日志/error.log
朱利安·拉迪奇

是的,对。因此,我们应该/ dev / null还是其他?你有什么建议?
MustafaÖzgür18年

这个答案是错误的,因为这将创建一个日志文件“ / usr / share / nginx / off”
DanielKhan

1

它应该很简单,您可以注释掉日志行

server {
    listen       80;
    server_name  _;
    #access_log  /var/log/nginx/access.log  main;
  ...

server {
    listen       80;
    server_name  example.com
    #access_log  off;
    #error_log off;

如果确实发生了暴击错误,则应该这样操作:“ error_log / dev / null crit;”所以它将是:

server {
    listen       80;
    server_name  _;
    access_log  /dev/null crit;
  ...

server {
    listen       80;
    server_name  example.com
    access_log  /dev/null crit;
    error_log /dev/null crit;

不要使用“ off”。如下所述,这将在nginx的主目录中创建一个名为“ off”的日志文件。
DanielKhan

0

基于Nginx帖子中的条件日志记录,而不是使用变量确定日志记录请求,仅使用常数0。

server {
listen       80;
server_name  _;
access_log  /var/log/nginx/access.log  main;
}

server {
listen       80;
server_name  example.com
access_log  /var/log/nginx/access.log if=0;
error_log /var/log/nginx/error.log if=0;
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.