SpringBoot avanzado: configuración y funcionamiento a nivel de registro

1. Nivel de registro

  1. rastro: nivel más bajo
  2. depuración: para la depuración, generalmente se usa para rastrear el progreso del programa
  3. info: para grabar, generalmente se usa para registrar el comportamiento del programa
  4. advertir: advertencia
  5. error: error
  6. fatal: error catastrófico, nivel más alto

2. Establecer el nivel de registro

El nivel de registro predeterminado de SpringBoot es info, lo que significa que solo se genera información o registros de nivel superior en la consola.

Si desea cambiar temporalmente el nivel de registro para la depuración durante la fase de desarrollo, puede usar la siguiente configuración simple:

debug: true

Para establecer realmente el nivel de registro del proyecto, debe hacer esto:

logging:
  level:
    root: info
    com.mzz.example.controller: debug
    com.mzz.example.service: debug

El nivel del registro se establece de acuerdo con el grupo o paquete, donde el grupo raíz es todo el proyecto

Pero es engorroso configurar el nivel de registro en unidades de paquetes, por lo que puede configurar el grupo usted mismo y luego configurar el nivel para cada grupo por separado:

logging:
  group:
    server: com.mzz.example.service, com.mzz.example.controller
    sql: com.mzz.example.mapper
  level:
    root: info
    server: debug
    sql: trace

3. Imprima el registro

Para imprimir el registro, primero debe obtener el objeto de registro, de la siguiente manera:

@RestController
@RequestMapping("/user")
public class UserController {
    
    

    public static final Logger log = LoggerFactory.getLogger(BookController.class);
    
}

Dado que esta línea de código es relativamente fija, se puede reemplazar por la anotación @Slf4j en Lombok, de la siguiente manera:

@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {
    
    
}

Después de obtener el objeto de registro, llame al método para imprimir el registro y use cada nivel como el nombre del método para imprimir el registro del nivel correspondiente:

@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {
    
    

    @Autowired
    private IUserService userService;
    
    @PostMapping
    public Result save(@RequestBody User user) {
    
    
        log.debug("尝试保存新用户:{}", user);
        boolean flag = bookService.save(user);
        if (!flag) {
    
    
	        log.error("保存新用户失败:{}", user);
        }
        log.info("已保存新用户:{}", user);
        return Result.success();
    }
}

Al imprimir registros, {} se puede usar como marcador de posición y la matriz se pasa más tarde

Además, no existe un método de impresión de registro de nivel fatal, porque fatal se refiere a un error grave que hará que el programa se bloquee, y el sistema de registro de bloqueo del programa no puede continuar ejecutándose, por lo que imprimir registros de nivel fatal no tiene sentido.

4. Formato de registro personalizado

Configure la propiedad logging.pattern.console para personalizar el formato del registro de impresión de la consola, de la siguiente manera:

logging:
  pattern:
    console: "%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n"

El anterior es el formato de registro predeterminado de SpringBoot, consulte: https://blog.csdn.net/qq_34049732/article/details/116722116

5. Registro de documentación

Vea el siguiente ejemplo:

logging:
  file:
    name: log/server.log	# 指定文件名称以及路径:启动路径下的 log 文件夹下
#    path: log/	# 指定日志文件路径,不含名称,默认为 spring.log
  logback:
    rollingpolicy:
      max-file-size: 1MB	# 指定文件最大规格
      file-name-pattern: log/server_%d{
    
    yyyy-MM-dd}_%i.log	# 指定文件名称格式以及路径

Los registros rodantes pueden establecer el tamaño máximo de cada registro

La configuración del registro continuo aún necesita establecer el nombre del registro, como server.log arriba, que contiene el registro más reciente

Solo necesita configurar un logging.file.name y logging.file.path, si existen al mismo tiempo, la ruta no será válida

Supongo que te gusta

Origin blog.csdn.net/Cey_Tao/article/details/127572412
Recomendado
Clasificación