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
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.