代码之家  ›  专栏  ›  技术社区  ›  tjeden

是否可以在nginx中指定自定义错误日志格式?

  •  22
  • tjeden  · 技术社区  · 15 年前

    我可以在nginx中为访问日志指定自定义日志格式,但对于错误日志不起作用。我希望每次出错时都能看到时间。有可能吗?

    3 回复  |  直到 8 年前
        1
  •  18
  •   Giacomo1968 Arvind    8 年前

    您不能指定自己的格式,但是在nginx构建中有几个级别的错误日志。

    Syntax: error_log file [ debug | info | notice | warn | error | crit ]

    违约: ${prefix}/logs/error.log

    指定记录服务器(和fastcgi)错误的文件。

    错误级别的默认值:

    1. 在主部分-错误
    2. 在HTTP部分-crit
    3. 在服务器部分-crit

    在我的错误日志中,时间总是显示在日志中每个错误字符串的int开头。

        2
  •  4
  •   Amnon    14 年前

    当我想更改nginx错误日志的格式时使用了一个肮脏的技巧(在本例中,当使用OpenResty发送我自己的日志时 ngx.log lua)的方法是在自己的日志消息前面加上足够的前缀 \b (backspace)字符,删除运行时我不想查看的所有信息。 tail -f error.log .

        3
  •  4
  •   Satys    10 年前

    这是一个黑客。

    我们知道可以自定义访问日志格式,但不能自定义错误日志格式。因此,对于定制的错误日志,我们只在发生错误时生成访问日志。

    这可以使用错误页面指令来完成。

    http {
    ...
      log_format custom_combined "...";
      server {
        ...
        error_page 50x @create_custom_error50x;
        ...
        location @create_custom_error50x {
          access_log path custom_combined;
          return 50x;
        }
      }
    }