O tempo de registro pode ser nginx no formato ISO 8601, mas inclui milissegundos?

2

Temos o Nginx como um proxy reverso na frente do Tomcat. Ambos registram o acesso com timestamps ISO 8601, mas o tomcat é adicionado em milissegundos (que é parte do padrão). Portanto, se o Nginx receber uma solicitação e a transmitir para o Tomcat, o log do Nginx poderá ter um registro de data e hora de "2015-10-29T00: 37: 02 + 00: 00" e o Tomcat terá um registro de data e hora de "2015-10-29T00: 37 : 02,106 + 0000 "para o mesmo acesso. Não estou preocupado com as pequenas diferenças na formatação, mas não ter milissegundos (a parte ", 106" no log do Tomcat) é um problema porque nos impede de correlacionar os logs corretamente.

Existe alguma maneira de fazer o Nginx incluir milissegundos em seus registros?

    
por SamBarham 29.10.2015 / 01:52

1 resposta

2

Infelizmente, com base na leitura do código-fonte para o nginx, não parece haver uma maneira simples de fazer isso. Você precisaria pós-processar os logs (você poderia pegar a saída de $ msec e transformá-la em ISO8601 com ms) ou corrigir nginx para adicionar isso.

Curiosamente, um patch foi proposto anos atrás, que teria dado flexibilidade suficiente para tornar isso possível, mas não acho que tenha acontecido em lugar algum: link

    
por 07.11.2015 / 23:45