1. Entenda
SLF4J (fachada de log simples para Java) representa uma fachada de log simples fornecida para Java, e um ponto mais básico é uma interface. Ao importar as informações no programa para o sistema de log e gravá -las, a dissociação entre o programa e o sistema de log pode ser alcançada.
A interface da fachada de log geralmente geralmente não possui o recurso de saída de log real. Ele ainda precisa chamar a API específica da estrutura de log na parte inferior, ou seja, ela realmente precisa ser usada em combinação com a estrutura de log específica. Como existem muitas estruturas de log específicas e são principalmente incompatíveis entre si, se a interface da fachada de log for combinada com qualquer estrutura de log, poderá exigir uma ponte correspondente, assim como a combinação entre JDBC e vários bancos de dados diferentes requer um driver JDBC correspondente.
1. Facada de log (fachada)
1.slf4j (recomendado)
2.Commons-Logging
2. Logs específicos de conexão SLF4J
Ao conectar o SLF4J e outros quadros de log, é necessária uma桥接器no meio. Algumas estruturas de registro usam a API SLF4J, para que não precisem usar pontes.
O Logback é uma versão aprimorada do LOG4J, e a API SLF4J é usada diretamente internamente, para que não haja ponte. (Dizem que Logback e Slf4J são do mesmo autor)
1.slf4j-api.jar> slf4j-log4j12.jar ponte> log4j.jar
2.SLF4J-API.JAR> LOGBACK-CORE.JAR, LOGBACK-CLASSIC.JAR
3.slf4j-api.jar> slf4j-simple.jar
4.SLF4J-API.JAR> LOG4J-SLF4J-IMPL-2.8.2.JAR> ORG.APACHE.LOGGING.LOG4J: LOG4J-API: 2.8.2, Org.Apache.Logging.Log4j: Log4j-core: 2.8.2, Onpache.Loggging.Log4j: Log4j-core: 2.8.2, ORG.APACHE.LOGGING.LOG4J: log4j2)
2. Use slf4j+log4j2
log4j2.xml
Coloque no diretório de recursos
<? xml versão = "1.0" coding = "utf-8"?> <!-Os 6 níveis de prioridade são: off, fatal, erro, aviso, informação, depuração, rastreamento, todos. Se a prioridade estiver definida como alerta, os quatro níveis de toras, desligados, fatais, erros e avisar, poderão gerar normalmente para desligar. Isso significa que os logs do log4j2 não estão gravados. -> <!-Status: usado para especificar o nível de log de impressão do próprio log4j. monitorInterval: specify the monitoring interval time for log4j automatically reconfigured --><configuration status="INFO" monitorInterval="30"> <!-- Set the properties yourself, and then access them through ${} --> <properties> <property name="LOG_HOME">${web:rootDir}/logs</property> </properties> <appenders> <!--Appender 1. Output to the Console console, especifique o formato de saída e o nível do filtro como informações-> <console name = "console" target = "system_out"> <!-limitefilter especifica o nível mais baixo da saída das mensagens de log-> <limiarfilter nível = "all" onmatch = "aceitam onMatch =" Deny "/<padronyout Patterns =" %classe {36} %l %m- %msg %xex %n "/> </sicole> <!-Appender 2. Saída para o arquivo salvo de rolagem, a condição que aciona o arquivo de log é que o arquivo de log é maior que 3kb e apenas os 10 logs são salvos-> <arquivo =" AllLog "Fillename =" $ { Level = "All" onMatch = "Acept" onMismatch = "Deny"/> <PatternLayout charset = "utf-8" padrony = " %d {yyyyy.mm.dd 'em' hh: mm: ss z} %-5level Isso desencadeia o arquivo de log de salvamento é que o arquivo de log é maior que 3 KB e apenas os 10 logs mais recentes são salvos-> <rollingfile name = "debugLog" filename = "$ {log_home} /debug.log" filepattern = "$ {log.pathf/dEbug-thurg" thher "> <frehShLold"> <frehShollold) onMismatch = "Deny"/> <PatternLayout charset = "utf-8" padrony = "[%-5Level] [%d {yyyy-mm-dd hh: mm: ss}] [%f:%l]-%m%n"/> <sizeBradeteringPoliy size = "3kb"/> <> <! Após o tamanho exceder o tamanho em tamanho de tamanho de baseBedingPolicy-> <DefaulTrolloverStrategy max = "10"/> </rollingfile> <!-Appender 4. Exportar para o arquivo salvo de rolagem, a condição que desencadeia o arquivo de log de salvamento é o primeiro evento de log por minuto. Os logs de erro são gerados por minutos-> <rollingfile name = "errorlog" filename = "$ {log_home} /error.log" filepattern = "$ {log.path}/error-%d {yyyyy-mm-dd_hh-mm} .log"> <hrSholdfilter " <PatternLayout charset = "utf-8" padrony = "[%-5LEvel] [%d {yyyyy-mm-dd hh: mm: ss}] [%c:%f:%l]-%m%n"/>> <timebasedtriggeringpolicy/> </rollingfile> <rollingfileile = "rollingfile =" rollingfiling "rolling" rolling) "rollingfile" " filename = "$ {log_home} /rar.log" filepattern = "$ {log_home}/$$ {date: yyyy-mm}/$ {file_name}-%d {mm-dd-yyyy}-%i.log.gz"> <stardlayout charset = "utnynfsnfs-dd-dd-yyyy}-%i.gz" "> <statstertLayout) HH: mm: ss z} %-5level %classe {36} %l %m- %msg %xex %n "/> <!-O valor máximo do arquivo de log é compactado no dia seguinte-> <paticies> </! <Groggers> <root nível = "info"> <appender-ref ref = "console"/> <!-<appender-ref ref = "alllog"/>-> <!-<appender-ref ref = "debugLog"/>-> <ppender-ref ref = "errorlog"/> <!-<pender-reff = "rollning" rollning = "reft =" Errorlog "/<!-<!LogTest.java
importar org.slf4j.logger; importar org.slf4j.loggerFactory; public class Logtest {public final Logger Logger = LoggerFactory.getLogger (getClass ()); public static void main (string [] args) {log.trace ("Trace"); log.debug ("Debug"); log.warn ("warn"); log.info ("info"); log.error ("erro"); }} Artigo de referência: https://www.vevb.com/article/143486.htm
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.