Notas de estudio de SpringBoot relacionadas con tres registros

Spring Boot y registros

Iniciar sesión

Marco de registro

Uso: SL4J y logback

Para facilitar la llamada del registro en el futuro, no debe llamar directamente a la clase de implementación del registro, sino llamar al método en la capa de abstracción del registro.

Importe los paquetes jar sl4j y logback en el sistema: log se puede utilizar después de importar los siguientes paquetes jar:

La demostración más sencilla de usar:

paquete com.example.log.demo.hello ;

// Importar paquete de prueba relacionado con el registro

import org.slf4j.Logger ;

import org.slf4j.LoggerFactory ;

public class HelloWorld {

    public static void main (String [] args)

    {

        // La prueba usa log . Lo probé. Actualmente , el contenido de depuración de este registrador solo funciona en la clase normal. ¿La llamada de la clase de inicio ( DemoApplication ) y la clase de prueba ( DemoApplicationTest ) no muestra el log ?

        Logger logger = LoggerFactory. getLogger ( clase HelloWorld. ) ;

        logger.debug ( " registro 1 de prueba yanruTODO " ) ;

    }

}

La siguiente es la estructura detallada del marco lógico:

El azul claro es la capa de la interfaz de adaptación y el azul oscuro es la capa de implementación del registro.

Cada marco de implementación de registros tiene su propio archivo de configuración (como log4j). Después de usar slf4j, el archivo de configuración aún se convierte en el propio archivo de configuración del marco de implementación de registros;

Registrar problemas heredados

Cuando se desarrolló el sistema A (slf4j + logback), se utilizaron varios registros de registro y se basaron en varios otros marcos;

Registro unificado, incluso si otros marcos usan slf4j para la salida junto conmigo, se utilizan algunos adaptadores de paquetes de conversión intermedios para lograrlo.

Cómo unificar todos los registros del sistema en slf4j:

1. Primero, excluya otros marcos del sistema;

2. Reemplace el marco de registro original con un paquete intermedio;

3. Importamos otras implementaciones de slf4j;

Pequeño consejo:

Haga clic derecho en el pom.xml del proyecto: Diagramas-> Mostrar dependencias

Ver específicamente

 

Ver registro de resumen:

(1) La capa inferior de Spring Boot también usa sl4j + logback para el registro

(2) Spring Boot también convierte otros tipos de registros a sl4j

(3) Utilice un paquete de conversión intermedio

El siguiente es el paquete de conversión intermedia:

(4) Si queremos introducir otros marcos, ¡debemos eliminar la dependencia de registro predeterminada de este marco!

El marco de Spring usa el registro de comentarios y el archivo de configuración de SpringBoot elimina la dependencia de commons-logging de forma predeterminada. La palabra clave <exclusion>, mi nueva configuración de guía de proyecto ya no es así. Debe haber dudas aquí (2019-1-1)

Uso del registro

asignación predeterminada

Spring Boot configura el registro por defecto

Directamente en la clase de prueba, puede usar Logger para imprimir registros:

paquete com.example.log.demo ;

importar org.junit. Prueba ;

importar org.junit.runner. RunWith ;

import org.slf4j.Logger ;

import org.slf4j.LoggerFactory ;

importar org.springframework.boot.test.context. SpringBootTest ;

importar org.springframework.test.context.junit4.SpringRunner ;

// Importar paquetes relacionados con el registro

@RunWith ( clase SpringRunner. )

@SpringBootTest

public class DemoApplicationTests {

    // Registrador

    Logger logger = LoggerFactory. getLogger (getClass ()) ;

    @Prueba

    public void contextLoads () {

        // Los siguientes niveles de registro, de menor a mayor: trace <debug <info <warn <error

        // registros pueden ser controlados para imprimir sólo un cierto nivel y de alto nivel de registro , la primavera el arranque por defecto para darnos información de nivel de registro

        Logger a .trace ( " Este es un registro de seguimiento " ) ;

        logger .debug ( " Este es un registro de depuración " ) ;

        logger .info ( " Este es un registro de información " ) ;

        logger .warn ( " Este es un registro de advertencia " ) ;

        logger .error ( " Este es el registro de errores " ) ;

    }

}

Modifique el nivel de impresión del registro en el archivo de configuración. Archivo de propiedades

# Especifique este com.example dentro del paquete usa niveles de seguimiento de registro

logging.level.com.example = trace

El resultado se ejecuta, imprimirá todos los niveles de registro

Spring Boot modifica la configuración predeterminada de las propiedades de inicio de sesión:

# Especifique este com.example dentro del paquete usa niveles de seguimiento de registro

logging.level.com.example = trace

# Especifique que se genere un archivo de registro en el proyecto actual, la ruta predeterminada no se especifica, indica cuándo el proyecto, como = springboot.log

# logging.file = D: /springboot.log

# En la ruta raíz del proyecto de disco actual se encuentra, cree la carpeta Spring y dentro de la carpeta del archivo de registro , use spring.log como archivo predeterminado

logging.path = / spring / log

# En el formato de salida crudo del registro de la consola ( prefijo de cadena de formato de registro como fecha o algo así ), la siguiente configuración no tendrá efecto, ¡específicamente conéctese en línea para verificar! , Y la configuración predeterminada de logback utilizada por mi proyecto por defecto no tiene la oportunidad de editar el formato de registro sin esta configuración

logging.pattern.console = % d {aaaa-MM-dd} [% hilo]% -5level% logger {50} -% msg% \ n

#Especifique el formato de la salida del registro en el archivo , la siguiente configuración no tendrá efecto, consulte en línea para obtener más detalles. , Y la configuración predeterminada de logback utilizada por mi proyecto por defecto no tiene la oportunidad de editar el formato de registro sin esta configuración

logging.pattern.file = % d {aaaa-MM-dd} === [% hilo] ===% -5level ===% logger {50} ===% msg% \ n

Para ver qué elementos de configuración en la configuración predeterminada del registro permiten la edición, verifíquelo en el paquete springboot:

Especificar configuración personalizada

Simplemente coloque la propia configuración de cada marco de registro en la ruta de clase, y Spring Boot no aplica el archivo de configuración predeterminado.

Si es logbackk, puede poner logback.xml o logback-spring.xml, pero Spring le recomienda poner logback-spring.xml, la diferencia es:

logback.xml: reconocido directamente por el sistema de registro

logback-spring.xml : una determinada configuración solo tendrá efecto en un determinado entorno de desarrollo o producción, puede usar la función de perfil de SpringBoot; de lo contrario, los elementos de configuración en el xml pueden informar errores (por ejemplo, si desea especificar el entorno de producción y probar por separado Cada entorno tiene un formato de salida de registro diferente)

Lo siguiente es específico, cómo escribir el nombre del archivo de configuración cuando varios registros quieren escribir una configuración personalizada:

Determine las etiquetas del entorno de perfil actual en logback-spring.xml:

<springProfile name = "dev" >

    // El actual perfil de modo está en la dev entorno de desarrollo, esta condición configuración tiene efecto

</springProfile>

Cambiar marco de registro

Es posible cambiar de registro, pero ya no voy a aprender ni a tomar notas, no veo el significado especial de esto. .

Teclas de atajo de IDEA:

Alt + Insert abre una ventana emergente para agregar métodos get y set, y los métodos se pueden agregar en lotes;

Algunas descripciones de paquetes comunes sobre los paquetes de Maven:

<! - Módulo Spring para pruebas unitarias ->

<dependencia>

    <groupId> org.springframework.boot </groupId>

    <artifactId> prueba de arranque de arranque de primavera </artifactId>

    <scope> probar </scope>

</dependencia>

Supongo que te gusta

Origin blog.csdn.net/Stephanie_1/article/details/87898496
Recomendado
Clasificación