Pergunta

Eu tenho alguns arquivos jar que serão distribuídos para os clientes que estão usando log4j para registro. A minha pergunta é que devo incluir uma configuração log4j.xml no arquivo jar ou ter o cliente fornecer um, se eles querem o registo?

Meu sentimento é deixar o arquivo de configuração log4j.xml a dos frascos do cliente, já que os arquivos do frasco apache todos vêm com logging log4j, mas sans log4j.xml.

Foi útil?

Solução

Sim, deixá-lo fora. É um incômodo absoluta quando seu arquivo de configuração log4j é ignorada porque uma das 60 bibliotecas de terceiros do seu aplicativo contém o seu próprio.

Outras dicas

A coisa boa sobre log4j no seu caso é que o seu jar realmente não deveria ter que se preocupar com isso. O caso de uso básico de log4j é:

  1. Obter um objeto logger para a classe atual
  2. uma chamada dos métodos em que logger, como debug("some message");

Se as baterias que está de envio são para ser usado por uma aplicação maior, em seguida, idealmente seu código só vai fazer as duas etapas listadas acima. Desta forma, seu código vai simplesmente obter objetos logger da instância log4j já configurado no pedido do cliente. O seu código de produção é então dissociado de ter que saber como log4j configure.

Qualquer logging você precisa ver para o seu desenvolvimento dos frascos pode ser realizado configurando uma instância log4j na configuração do teste de unidade () métodos ou algo semelhante que não vai ficar junto com o código de produção vai para o cliente.

Eu colocaria uma configuração log4j padrão que você espera que será útil para seus clientes na documentação. Desta forma, as pessoas interessadas podem ver o que o log opções que você tem (geralmente determinadas classes têm mensagens de log mais interessantes, do ponto de vista do usuário). Acho que é irritante quando eu tenho um terceiro lib usando log4j e não tem documentação, e há mensagens de log enchendo minha tela e eu tenho que tentar descobrir como ativar ou suprimir certas mensagens de log.

Se você estiver usando log4j em sua aplicação, então você incluí-lo em seu projeto. Se você não for, então por que você iria colocá-lo lá? E se o cliente A quer log4j versão 1.2 eo cliente B quer log4j versão 1.3.

Deixe-os decidir o que eles precisam para os seus projectos e se preocupar com o que você precisa para o seu.

Gostaria de acrescentar a configuração XML e carregá-lo com instruções para o usuário mostrando diferentes configurações e opções. Isto irá tornar mais fácil para eles ou suporte para habilitar o registro disso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top