Cómo Spring Boot usa JUL para iniciar sesión
En Spring Boot, podemos usar varios marcos de registro para el registro. Entre ellos, JUL (Java Util Logging) es el marco de registro que viene con la plataforma Java, que proporciona una API y una configuración sencillas para facilitar el registro. Este artículo describe cómo usar JUL para iniciar sesión en Spring Boot y proporciona un código de muestra.
Configurar JUL
De forma predeterminada, Spring Boot usa Logback como marco de registro. Si desea utilizar JUL para iniciar sesión, se requiere alguna configuración. Primero, necesitamos agregar las siguientes dependencias al pom.xml
archivo :
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>1.7.30</version>
</dependency>
En las dependencias anteriores, excluimos la dependencia del marco de registro predeterminado spring-boot-starter-logging
y agregamos la dependencia del servidor Jetty. Además, hemos agregado una dependencia jul-to-slf4j
que convierte el registrador JUL en un registrador SLF4J para usar en Spring Boot.
A continuación, debemos agregar la siguiente configuración al application.properties
archivo :
logging.level.root=INFO
logging.level.org.springframework=INFO
logging.level.org.hibernate=INFO
logging.level.com.example=FINEST
logging.config=classpath:logging.properties
En la configuración anterior, especificamos el nivel de registro y la ubicación del archivo de configuración de registro. logging.level.root
Representa el nivel de registro del registrador raíz, logging.level.org.springframework
representa el nivel de registro del marco Spring, logging.level.org.hibernate
representa el nivel de registro del marco Hibernate y logging.level.com.example
representa el nivel de registro de nuestra propia aplicación. Aquí, establecemos el nivel de registro de nuestra aplicación en FINEST
, indicando el registro más detallado. logging.config
Indica la ubicación del archivo de configuración de registro, que estableceremos en classpath:logging.properties
.
A continuación, debemos crear un archivo logging.properties
llamado , que configurará JUL. En este archivo podemos configurar opciones como el nivel de registro de JUL, destino de salida, formateador y filtro. Aquí hay un ejemplo simple:
handlers=java.util.logging.ConsoleHandler
.level=FINEST
java.util.logging.ConsoleHandler.level=FINEST
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
En la configuración anterior, especificamos el nivel de registro, el destino de salida y el formateador. handlers
Se especifica el destino de salida, aquí enviamos el registro a la consola. .level
Indica el nivel de registro del registrador raíz, java.util.logging.ConsoleHandler.level
el nivel de registro del destino de salida de la consola java.util.logging.ConsoleHandler.formatter
y el formateador del destino de salida de la consola, que usamos aquí SimpleFormatter
.
Usando JUL con Spring Boot
Después de configurar JUL, podemos usar JUL para iniciar sesión en Spring Boot. Primero, necesitamos crear un registrador logger
llamado , por ejemplo:
private static final Logger logger = Logger.getLogger(DemoController.class.getName());
En el código anterior, usamos Logger.getLogger
el método para crear un logger
registrador llamado , especificando el nombre de la clase donde se encuentra el registrador.
A continuación, podemos iniciar sesión usando el registrador. Por ejemplo:
logger.info("This is an info message.");
En el código anterior, usamos logger.info
el método para registrar un registro de nivel de información.
JUL admite una variedad de niveles de registro, incluidos SEVERE
, WARNING
, INFO
, CONFIG
, y niveles. Puede seleccionar un nivel de registro apropiado para grabar de acuerdo con las necesidades reales.FINE
FINER
FINEST
Además, JUL admite el registro con marcadores de posición, por ejemplo:
String message = "Hello, {}!";
String name = "world";
logger.info(message, name);
En el código anterior, usamos el marcador de posición {}
para indicar la parte que debe reemplazarse en el registro y luego pasamos el valor que debe reemplazarse en el método de registro. Este método puede evitar los problemas de rendimiento causados por el empalme de cadenas y también puede evitar el problema de salida de registro incorrecta causada por errores de empalme de cadenas.
Código de muestra
Aquí hay un código de muestra completo que demuestra cómo usar JUL para iniciar sesión en Spring Boot:
import java.util.logging.Logger;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class DemoController {
private static final Logger logger = Logger.getLogger(DemoController.class.getName());
@GetMapping("/hello")
public String hello() {
logger.info("This is an info message.");
String message = "Hello, {}!";
String name = "world";
logger.info(message, name);
return "Hello, world!";
}
}
En el código anterior, creamos DemoController
un controlador Spring MVC llamado con un hello
método de controlador llamado . En este método, usamos el método descrito anteriormente para registrar dos registros de nivel de información y devolver una cadena.
Resumir
En este artículo, presentamos cómo usar JUL para iniciar sesión en Spring Boot y proporcionamos un código de muestra. JUL es el marco de registro que viene con la plataforma Java, que proporciona una configuración y una API sencillas para facilitar el registro. Al configurar y usar JUL, podemos realizar registros de manera más conveniente y mejorar la capacidad de mantenimiento y la confiabilidad de la aplicación.