1. Comprender
SLF4J (fachada de registro simple para Java) representa una fachada de registro simple provista para Java, y un punto más básico es una interfaz. Al importar la información en el programa al sistema de registro y registrarla, se puede lograr el desacoplamiento entre el programa y el sistema de registro.
La interfaz de fachada de registro en sí generalmente no tiene la capacidad de salida de registro real. Todavía necesita llamar a la API específica del marco de registro en la parte inferior, es decir, en realidad debe usarse en combinación con el marco de registro específico. Dado que hay muchos marcos de registro específicos y en su mayoría son incompatibles entre sí, si la interfaz de fachada de registro se combina con cualquier marco de registro, puede requerir un puente correspondiente, al igual que la combinación entre JDBC y varias bases de datos diferentes requiere un controlador JDBC correspondiente.
1. Fachada de registro (fachada)
1.slf4j (recomendado)
2.Commons-registro
2. Registros específicos de conexión SLF4J
Al conectar SLF4J y otros marcos de registro, se necesita un桥接器en el medio. Algunos marcos de registro usan la API SLF4J, por lo que no necesitan usar puentes.
Logback es una versión mejorada de LOG4J, y la API SLF4J se usa directamente internamente, por lo que no hay puente. (Se dice que logback y slf4j son del mismo autor)
1.slf4j-api.jar> slf4j-log4j12.jar puente> 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, org.apache.logging log4j2)
2. Use SLF4J+LOG4J2
log4j2.xml
Ponlo en el directorio de recursos
<? xml versión = "1.0" encoding = "utf-8"?> <!-Los 6 niveles de prioridad son: desactivados, fatales, error, advertencia, información, depuración, rastreo, todos. Si la prioridad se establece para advertir, entonces los cuatro niveles de registros, desactivados, fatales, errores y advertir, pueden generar normalmente. Esto significa que los registros de LOG4J2 no se registran. -> <!-Estado: se usa para especificar el nivel de registro de impresión de log4j en sí. MonitorInterval: especifique el tiempo de intervalo de monitoreo para LOG4J reconfigurado automáticamente-> <Configuration Status = "Info" MonitorVal = "30"> <!-Establezca las propiedades tú mismo y luego acceda a ellas a través de $ {}-> <Propiedades> <Propers Name = "Log_home"> $ {Web: RootDir}/logs </propianas> </propiencias> Console, especifique el formato de salida y el nivel de filtro como info-> <console name = "console" target = "system_out"> <!-ThresholdFilter Especifica el nivel más bajo de salida de los mensajes de registro-> <ThrhesholdFilter nivel = "all" onmatch = "aceptar" onmismatch = "deny"/> <patrones de patrones = " %dri: mm: ss.ss.ss. %class {36} %l %m- %msg %xex %n "/> </ console> <!-Appender 2. Salida al archivo guardado de desplazamiento, la condición que desencadena el archivo de registro de guardado es que el archivo de registro es mayor que 3KB, y solo los últimos 10 logs se guardan-> <nombre de archivo =" Alllog "filename =" $ {log_home} nivel = "all" onmatch = "aceptado" onMismatch = "deny"/> <paternlayout charset = "utf-8" patrón = " %d {yyyyyy.mm.dd 'en' hh: mm: ss z} %-5level %class {36} %l %m- %msg %xex °/> </file> <!-Appender 3. Los desencadenantes El archivo de registro de guardado es que el archivo de registro es mayor que 3kb, y solo se guardan los últimos 10 registros-> <rollingfile name = "debuglog" filename = "$ {log_home} /debug.log" filePattern = "$ {log.path} /debug-%i.log"> <tresholdfilter nivel = "debugugurug" aceptado "aceptado" aceptan "" aceptan "" aceptan "" aceptan "" aceptan "" aceptan "" aceptan "" aceptan "" aceptan "" aceptan "" aceptan ". onMismatch = "Deny"/> <PatternLayout Charset = "UTF-8" Pattern = "[%-5Level] [%d {yyyyy-mm-dd HH: mm: ss}] [%f:%l]-%m%n"/> <sizeBasedTriggeringPolicy size = "3kb"/> <!-El parámetro max en defaultrolloversverStrolsTROTROTROTROTROTROTROTROTROTROTYMATYMATYMATY El tamaño excede el tamaño en SizeBaseDtriggeringPolicy-> <DeFaulTrolloverStrategegy max = "10"/> </ RollingFile> <!-Appender 4. Exporte al archivo guardado por desplazamiento, la condición que desencadena el archivo de registro de guardado es el primer evento de registro por minuto. Los registros de errores se generan mediante minutos-> <rollingFile name = "ErrorLog" FileName = "$ {log_home} /error.log" filePattern = "$ {log.path}/error-%d {yyyy-mm dd_hhh-mm} .log"> <ThrhesholdFilter Level = "Error" OnMatch = "oneMismatath =" ONMISMATCH "ONMISMATT =" ONMANT <PatternLayout Charset = "UTF-8" Pattern = "[%-5Level] [%D {yyyyyy-mm-dd hh: mm: ss}] [%c:%f:%l]-%m%n"/> <TimeBasedTriggeringPolicy/> <//rollingfile> <Nombre de rollingfile = "Rollingfile" "" FileName = "$ {log_home} /rar.log" filePattern = "$ {log_home}/$$ {date: aayyyy-mm}/$ {file_name}-%d {mm-dd-yyyy}-%i.log.gz"> <matterneut charset = "utf-8" patrones = "%d @ {ddyyy ' HH: MM: SS Z} %-5Level %class {36} %l %m- %msg %xex %n "/> <!-El valor máximo del archivo de registro se comprime al día siguiente-> <Político> <TimeBasedRiggeringPolicy/> <SizeBasedTriggeringPolicy/> </policies> </ RollingFile> <////<//////////os potentes root de sizeBasedTrigGering. <gloggers> <root nivel = "info"> <appender-ref ref = "console"/> <!-<appender-ref ref = "alllog"/>-> <!-<appender-ref ref = "debuglog"/>-> <appender-ref ref = "Errorlog"/> <!-<Appender-ref Ref = "RollingFile"/<> <</</root </</root </root> </Root/</RootGersLogTest.java
importar org.slf4j.logger; import org.slf4j.loggerFactory; public class logTest {public final logger logger = loggerFactory.getLogger (getClass ()); public static void main (string [] args) {log.trace ("traza"); log.debug ("debug"); log.warn ("warn"); log.info ("info"); log.error ("error"); }} Artículo de referencia: https://www.vevb.com/article/143486.htm
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.