Springboot2.x tutorial básico: configuración de registro

En el proceso de desarrollo del proyecto, los desarrolladores estarán familiarizados con el registro. Los registros pueden registrar el seguimiento de la operación del programa, generar información clave en la operación del software, ayudarnos a solucionar problemas y localizar problemas, optimizar el rendimiento del programa y monitorear el estado de operación del programa.
El spring-boot-starter del proyecto SpringBoot se refiere a spring-boot-starter-logging de forma predeterminada, donde la capa inferior usa el marco de registro de logback y la función de registro se puede usar con configuración cero por defecto.
Antes de explicar la configuración del registro de springboot, hablemos brevemente sobre el conocimiento básico de los registros de JAVA.

Momento de la tala

  • Registre los parámetros de inicio de la inicialización del programa y juzgue el estado de ejecución del programa
  • El código genera una excepción y registra el estado anormal del programa.
  • El proceso empresarial no coincide con el resultado esperado y se registra el estado anormal del negocio
  • Negocio central del sistema, operación de la autoridad central. Por ejemplo, los registros de operaciones como el inicio de sesión y el pago generalmente se incluyen en la base de datos para su análisis.

Marco de registro de Java

Para los marcos de registro, normalmente vemos sustantivos como log4j y logback, y también encontramos conflictos entre nuestro propio proyecto y la biblioteca de registros de un jar de terceros.
La primera vez que entre en contacto con estos, es posible que sienta que las nubes y la niebla son incomprensibles.Aquí hay una breve introducción a la relación entre el marco de registro de Java. Razones históricas más específicas, detalles. Hay varios artículos en Internet que son muy buenos y los adjuntaré a su propia comprensión lectora:

  1. Sepa que hay un artículo arriba: análisis del marco de registro de Java
  2. Hay un artículo en el blog: Introducción a Java Common Log Framework

Después de leer el artículo anterior, un breve resumen del marco de registro de Java se divide en 3 categorías:

  • La implementación específica del marco de registro de Java: log4j1.x, JUL (Java Util Log), Logback, log4j2-core
  • El objeto de fachada del marco de registro de Java, solo proporciona la interfaz pero no la implementación específica: JCL (Commons Logging), SLF4J (The Simple Logging Facade para Java), log4j2-api
  • Adaptador entre marcos de registro de Java, para convertir diferentes marcos de registro: jcl-over-slf4j, slf4j-jcl, log4j-over-slf4j, slf4j-log4j12, etc.
    Fuente de imagen en línea

Mejores prácticas para el marco de registro (enlace de referencia de la fuente, aquí hay solo un extracto):

  1. Utilice siempre Log Facade en lugar de una implementación de registro específica
  2. Solo agregue una dependencia de implementación de registro
  3. La dependencia de implementación de registro específica debe establecerse en opcional y usar el alcance del tiempo de ejecución
  4. Si es necesario, excluya las dependencias de Log Impementation en las bibliotecas de terceros dependientes
  5. Evite generar registros innecesarios y los campos de registro innecesarios, como los números de línea, afectan el rendimiento del programa.

Configuración del registro SpringBoot

Dependencia de registro

Springboot usa la combinación de SLF4J + Logback para registrar los registros de forma predeterminada, y puede ver las dependencias, por lo que no es necesario que las introduzcamos.

configuración de registro de springboot

logging:
  level:
    #包的日志级别
    org.springframework.web: DEBUG
  #自定义log信息
  config: classpath:config/logback-spring.xml
  pattern:
    #控制台的日志输出格式
    console: '%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n'
    #文件的日志输出格式
    file: '%d{yyyy/MM/dd-HH:mm} [%thread] %-5level %logger- %msg%n'
  file:
    #日志名称
    name: app.log
    #存储的路径
    path: /var/log/
    #存储的最大值
    max-size: 50MB
    #保存时间
    max-history: 7

Configuración de registro personalizado

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!--获取变量名中关于日志存储的路径与存储名称-->
    <springProperty scope="context" name="logPath" source="logging.file.path"/>
    <springProperty scope="context" name="logName" source="logging.file.name"/>
    <!--输出到控制台的appender-->
    <appender name="Console"
              class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>
                %black(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %yellow(%C{1.}): %msg%n%throwable
            </Pattern>
        </layout>
    </appender>
    <!--输出到文件的appender-->
    <appender name="RollingFile"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${logPath}/${logName}</file>
        <encoder
                class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>%d %p %C{1.} [%t] %m%n</Pattern>
        </encoder>

        <rollingPolicy
                class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover daily and when the file reaches 10 MegaBytes -->
            <fileNamePattern>${LOGS}/archived/spring-boot-logger-%d{yyyy-MM-dd}.%i.log
            </fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>

    <!--开发环境基本级别为DEBUG-->
    <springProfile name="dev">
        <root level="DEBUG">
            <appender-ref ref="Console"/>
        </root>
    </springProfile>
    <!--生产环境输入到文件中-->
    <springProfile name="prod">
        <root level="INFO">
            <appender-ref ref="RollingFile"/>
        </root>
    </springProfile>
</configuration>

Mil millas comienzan con un solo paso. Aquí está el octavo artículo de la serie de tutoriales de SpringBoot. Todos los códigos fuente del proyecto se pueden descargar en mi GitHub .

Supongo que te gusta

Origin blog.csdn.net/github_35592621/article/details/108248869
Recomendado
Clasificación