Usando o nome de classe simples em java formatador logging

Hari Nair:

Eu tenho um SimpleFormatter para registro no meu aplicativo com a string
"%1$tF %1$tT %4$-7s %2$s %5$s%6$s%n"

Eu gostaria de usar o nome da classe simples em vez do nome canônico. Existe uma opção de formato que eu possa usar com o 2 $ campo? Ou será que esta requer escrever um novo Handler?

Por exemplo, em vez de
2019-02-06 07:09:09 INFO simplex.tools.SIMPLEXScheduler main Start

Eu gostaria de ver
2019-02-06 07:09:09 INFO SIMPLEXScheduler main Start

jmehrens:

Existe uma opção de formato que eu possa usar com o 2 $ campo?

O SimpleFormatter só suporta a funcionalidade no java.util.Formatter . Atualmente não há nenhuma maneira de formatar nome da classe como nome de classe simples.

Ou será que esta requer escrever um novo Handler?

Uma opção é escrever um novo java.util.logging.Formatter . Existem alguns hacks que você pode fazer por apenas instalando um java.util.logging.Filter para mudar o nome da classe , mas você deve evitar fazer isso. Use logp vez como sugerido por PJMeisch

Disclaimer: Eu sou um desenvolvedor de conteúdo para com.sun.mail.util.logging pacote com o JavaMail projeto.

Se você tem acesso a JavaMail você pode usar o com.sun.mail.util.logging.CompactFormatter que só irá imprimir o nome da classe simples. O trade off é que ele vai imprimir rastreamentos de pilha compactos para exceções. Argumentos 1 até 6 são da mesma ordem que o SimpleFormatter de modo que o mesmo padrão pode ser usado.

Se você não deseja incluir JavaMail, em seguida, você pode usar o com.sun.mail: logging-mailhandler artefato em seu lugar.

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=211236&siteId=1
Recomendado
Clasificación