题 如何禁用Nginx日志记录?


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

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 虚拟主机。我究竟做错了什么?


19
2017-10-05 04:03




你打算在这里做什么“主要”? - Evan Carroll
我已将此问题标记为删除,因为最受欢迎的答案与语法错误有关。它与关闭错误日志记录无关。它没有可搜索的错误消息,我不确定您要问的是什么或为什么提供的答案无法解决您的问题。 - Evan Carroll


答案:


你错过了 ; 在server_name指令之后。 access_log 和 off 被视为额外的server_names。


24
2017-10-05 04:55



另外,error_log关闭;不会关闭错误记录。它只是将错误记录到名为“off”的文件中。没有办法完全禁用错误记录,你可以得到的最接近的是error_log / dev / null crit;这几乎是一样的,因为不会出现错误日志。 - kolbyjack
实际上,做 access_log off; 导致nginx将日志写入调用的文件中 off。所以这不是正确的答案。 - user965363
实际上,这是正确的答案。 “使用”off“作为唯一参数清除当前级别的所有access_log指令”: wiki.nginx.org/HttpLogModule#access_log。对于error_log(由@kolbyjack添加)不是这样,但我相信问题是关于访问,而不是错误日志。有些非常旧版本的nginx可能不支持此功能。 - rvs
使用是否有优势 off 代替 /dev/null?如果 off 导致某些版本的Nginx写入名为的文件 off, 然后 /dev/null 似乎是一个更普遍的解决方案。 - Joe Mornin


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

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

15
2017-10-08 04:56



我也用这个; /dev/null 是一个真正的目的地;而“off”是某个目录中的文件 - edoceo
这不是官方推荐的方式。使用'off'是正确的方法。 - user1751825
我把它变成了/ var / null,现在它开始将日志保存在var目录中名为“null”的文件中。应该只是“/ dev / null”吗? - Gaurav


你可以禁用 access_log 通过使用

access_log off;

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


6
2017-12-13 16:14



这是如何增加早期的答案? - Dave M
Cuz,以前的回答是无用的!不要用它 - Mustafa Özgür
如果配置不包含error_log选项,则nginx默认为“error_log logs / error.log error”: nginx.org/en/docs/ngx_core_module.html#error_log - Julian Ladisch
是的,那是对的。那么,我们应该/ dev / null还是其他什么?你的建议是什么? - Mustafa Özgür


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

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;

0
2017-12-13 18:48