Se estou desenvolvendo uma biblioteca Java, é uma boa prática emitir instruções de log de dentro do código da biblioteca?
A criação de log na biblioteca tornará a depuração e a solução de problemas mais transparentes. No entanto, por outro lado, não gosto de encher meu código de biblioteca com instruções de log. Também há implicações de desempenho a serem consideradas?
Respostas:
Sim você deveria. O uso de uma fachada de registro como o SLF4J oferece flexibilidade sem sobrecarregar os usuários com uma estrutura de registro específica.
Além disso, se seus usuários não incluírem um jar SLF4J (no guia do usuário ):
Se você estiver preocupado com as implicações de desempenho do log, consulte esta entrada do SLF4J FAQ . A idéia é que você forneça parâmetros para registrar instruções em vez de adicioná-las a uma sequência de caracteres:
O SLF4J é mais uma fachada de exploração?
fonte
Sim , você deve fazer logon no código da sua biblioteca. Isso não apenas ajuda você a se desenvolver, mas as pessoas que usam a biblioteca a acharão útil. Lembre-se de que você sempre pode definir os níveis de log para mostrar apenas as instruções de log necessárias - e elas podem fazer o mesmo.
Recentemente, eu estava usando o Mybatis , uma ferramenta ORM de código aberto. Eu estava depurando um problema em que uma consulta que achava que deveria estar correta não retornava resultados. Era uma consulta parametrizada e, como o Mybatis possui registro em seu código de biblioteca, eu pude ativá-lo e ver a consulta real sendo executada. Era fácil dizer que troquei dois parâmetros. Sem fazer login na biblioteca, eu não poderia ter encontrado o problema tão rapidamente.
fonte