Logger vem do próprio pacote do log4j. Se você usar Logger.getLogger, precisará de um pacote jar log4j. Dessa forma, você só pode confiar no log4j:
LogFactory vem do pacote common-logging. Se você usar LogFactory.getLog, poderá substituir log4j por qualquer criador de logs que implemente a interface de log comum e o programa não será afetado. O pacote common-logging do Apache é uma interface de registro universal. Através desta camada intermediária, você pode especificar qual sistema de registro usar. Aumente a flexibilidade do sistema. Se log4j não existir, o commons-logging escolherá outras classes de implementação de log. Isso garante que o arquivo de log log4j não precise ser usado no programa.
Razões para maior flexibilidade:
1) Primeiro, procure seu próprio arquivo de configuração commons-logging.properties no caminho de classe. Se encontrado, use a classe de implementação Log definida nele;
2) Se o arquivo commons-logging.properties não puder ser encontrado, verifique se a variável de ambiente do sistema org.apache.commons.logging.Log foi definida, se encontrada, use a classe de implementação Log definida por ele;
3) Caso contrário, verifique se existe um pacote Log4j no caminho de classe. Se encontrado, Log4j será automaticamente usado como classe de implementação de log;
4) Caso contrário, use a classe de implementação de log do próprio JDK (a classe de implementação de log só estará disponível após JDK1.4);
5) Caso contrário, use uma classe de implementação de log simples SimpleLog fornecida pelo commons-logging;
Para simplificar a configuração do registro comum, o arquivo de configuração do registro comum geralmente não é usado e as variáveis de ambiente do sistema relacionadas ao registro comum não são definidas. Em vez disso, o pacote Jar do Log4j é simplesmente colocado no classpash. Desta forma, a integração do commons-logging e do Log4j é concluída de forma muito simples.
De acordo com diferentes propriedades, as informações de log são geralmente divididas em diferentes níveis, de baixo a alto: "Debug (DEBUG)" "Informações (INFO)" "Aviso (WARN)" "Erro (ERROR)" "Erro fatal (FATAL)) ".
Com base no modo de operação de registro comum:
Copie o código do código da seguinte forma:
organização do pacote;
importar org.apache.commons.logging.Log;
importar org.apache.log4j.Logger;
teste de classe pública estende TagSupport{
log estático público log = LogFactory.getLog (Test.class);
teste de vazio estático público()
{
log.debug("111");
log.info("125");
log.warn("485");
log.error("erro");
}
público estático void principal(String[] a)
{
Teste.teste();
}
}
Método de operação baseado em log4j
Copie o código do código da seguinte forma:
importar org.apache.log4j.Logger;
importar org.apache.log4j.PropertyConfigurator;
classe pública TestLog4j {
Registrador de log estático = Logger.getLogger (TestLog4j.class);
public static void main(String args[]) {
PropertyConfigurator.configure("log4j.properties");
logger.debug("Aqui está um DEBUG");
logger.info("Aqui estão algumas informações");
logger.warn("Aqui está um AVISO");
logger.error("Aqui está algum ERRO");
logger.fatal("Aqui está um FATAL");
}
}
commons-logging fornece apenas uma camada de empacotamento para Log4j (incluindo outras implementações de LOG, é claro). A saída de log específica ainda é transferida internamente para Log4j para processamento, e log4j irá para o diretório de classes por padrão para encontrar log4j.properties. arquivo.