1. Prefácio
O LOG4J é uma estrutura de registro confiável, rápida e flexível (API) escrita em Java, lançada sob a licença de software Apache. O LOG4J foi portado para idiomas como C, C ++, C#, Perl, Python e Ruby.
O Log4J é altamente configurável e pode ser configurado por meio de arquivos externos em tempo de execução. Depende do nível de prioridade do registro e fornece mecanismos para indicar as informações de registro para muitos destinos, como: bancos de dados, arquivos, consoles, logs do sistema UNIX etc.
Existem três componentes principais no log4j:
Madeireiros: responsável por capturar informações de registro.
APENDERS: Responsável pela publicação de informações de log em diferentes destinos preferidos.
Layouts: Responsável pela formatação de informações de log de diferentes estilos.
Nota: Este artigo é baseado no log4j 2.x e acima.
2. Instalação
log4j-core-xx.jar
log4j-api-xx.jar
log4j-web-xx.jar (referência necessária para projetos da web)
3. Configuração
Prepare alguns logs para adicionar as seguintes referências:
importar org.apache.logging.log4j.logmanager; importar org.apache.logging.log4j.logger;
estático logger logger = logManager.getLogger (test.class.getName ());
O local do arquivo de configuração está localizado em: diretório raiz SRC. Mesmo se não houver arquivo de configuração, não haverá erro. Por padrão, ele é emitido na forma de console .
O arquivo de configuração log4j2 é muito diferente do log4 (a versão 1.x é muito diferente) e só pode usar os formatos .xml, .json ou .jsn. A configuração específica é a seguinte ( ${web:rootDir} representa o diretório raiz da web):
<? xml versão = "1.0" coding = "utf-8"?> <STATUS DE CONFIGURAÇÃO = "ERRO"> <!-Definir todos os apêndices-> <pêndores> <!-Configuração deste console de saída-> <console name = "console" Target = "System_out"> <!-Este é o formato da saída do tipo de saída-> Patterny> %-5level %classe {36} %l %m- %msg %xex %n "/> </sicSole> <!-O arquivo imprimirá todas as informações. Este log será limpo automaticamente toda vez que é executado, o que é determinado pelo atributo apêndice, adequado para testes temporários-> <arquivo name = "error" filename = "$ {web: rootdir} /logs/error.log" append = "False"> <! nível = "Erro" onmatch = "aceitar" onMismatch = "negar"/> <PatternLayout charset = "utf-8" padrony = " %d {hh: mm: ss.ss} %-5level %classe {36} %l %m-msg %xex %n"/> </file> <!- Cada vez que o tamanho excede o tamanho, o log desse tamanho será armazenado automaticamente na pasta criada por mês e compactada como um arquivo-> <rollingfile name = "rollingfile" filename = "$ {web: rootdir} /logs/history.log" filepattern = "log/$$ {date: yyyy-mm}/history- %d {mm-dd-yyyy}- %i.log.gz"> <padrão de charset = "utf-8" padring = " %d {yyyy-mm-dd 'em' hh: mm: ss} %-5 -5l -5l {yyyy-mm-dd 'em' hh: mm: ss}}} %msg%xex%n "/> <sizeBasedTriggeringPolicy size =" 50MB "/> </rollingfile> </pênders> <!-depois defina o logger. O Appender só entrará em vigor se o Logger for definido e introduzido. -> <Loggers> <!-Crie um logger de root padrão-> <root nível = "trace"> <appender-ref ref = "error"/> <appender-ref ref = "rollingfile"/> <appender-ref ref = "console"/> </somling> </loggers> </figuration>4. Projetos comuns e projetos da Web
Para projetos comuns, a configuração acima pode ser usada normalmente após a conclusão da configuração acima e, para projetos da Web, os arquivos de log não serão gerados. Você precisa adicionar a seguinte configuração no nó raiz <web-app> na web.xml:
<!-log4j2.x start-> <Ilvier> <lister-class> org.apache.logging.log4j.web.log4jservletContextListener </sivener-class> </ouvinte> <filter> <filter-name <filter-class>org.apache.logging.log4j.web.Log4jServletFilter</filter-class></filter><filter-mapping> <filter-name>log4jServletFilter</filter-name> <url-pattern>/*</url-pattern></filter-mapping><!-- log4j2.x end -->
Resumir
O acima é o método de usar o log4j para gravar logs em java. Espero que o conteúdo deste artigo seja de ajuda para o estudo ou trabalho de todos. Se você tiver alguma dúvida, pode deixar uma mensagem para se comunicar. Obrigado pelo seu apoio ao wulin.com.