É possível que o log4j2 imprima o carimbo de data/hora fornecido pelo usuário em vez da hora do sistema?
-
21-12-2019 - |
Pergunta
Eu escrevo um aplicativo que usa dados gravados com carimbos de data/hora.Para isso tenho um objeto responsável por saber a hora atual (que está no passado, mas ainda monotônica).
Desejo configurar o log4j2, de forma que o carimbo de data/hora impresso seja retirado deste objeto e não do cronômetro do computador.É possível?
Obrigado.
Solução
Sim, isso é possível.Você pode especificar a propriedade do sistema "log4j.Clock" com o nome de classe completo de uma classe que implementa o org.apache.logging.log4j.core.helpers.Clock
interface.
Veja a documentação aqui: http://logging.apache.org/log4j/2.x/manual/async.html#AllAsync
A partir da versão RC1, isso funciona apenas para Async Loggers, mas na próxima versão funcionará para todas as configurações.Observe que na próxima versão o pacote core.helpers foi movido para core.util.
Veja também https://issues.apache.org/jira/browse/LOG4J2-628 para detalhes.