Explicación detallada del archivo de configuración de registro del proyecto Springboot

El proyecto Spring Boot especifica el archivo de configuración de registro

En un proyecto Spring Boot, el registro se puede configurar especificando un archivo de configuración de registro en el archivo application.propertieso .application.yml

1. Utilice application.propertiesarchivos:

En application.properties, puede especificar el perfil de registro utilizando las siguientes propiedades:

logging.config=classpath:custom-logback.xml

La configuración anterior le indicará a Spring Boot que use el archivo ubicado en el classpath custom-logback.xmlcomo archivo de configuración de registro. Puede cambiar la ruta del archivo a la ruta de su propio archivo de configuración de registro.

2. Utilice application.ymlarchivos:

En application.yml, puede especificar el perfil de registro utilizando las siguientes propiedades:

logging:
  config: classpath:custom-logback.xml

Igual que la configuración anterior application.properties, esta configuración le indicará a Spring Boot que use el archivo ubicado en el classpath custom-logback.xmlcomo archivo de configuración de registro.

Asegúrese de que el archivo de configuración de registro esté en la ruta de clase o especifique la ruta de archivo correcta si es necesario.

Con la configuración anterior, puede especificar un archivo de configuración de registro personalizado en su proyecto Spring Boot para anular la configuración de registro predeterminada.

La diferencia entre logback-spring.xml y logback.xml

opcion uno

Cuando se utiliza Logback como marco de registro, logback-spring.xml y  logback.xml son dos archivos de configuración de uso común, difieren ligeramente en cómo cargan y procesan las configuraciones.

  1. logback-spring.xml :

    • logback-spring.xml Es un archivo de configuración de Logback especialmente preparado para proyectos Spring Boot.
    • Al usar Spring Boot,  logback-spring.xml Spring Boot cargará y reemplazará automáticamente la configuración de Logback predeterminada si el archivo existe.
    • logback-spring.xml${} Admite funciones y extensiones de Spring Boot, como la configuración dinámica  utilizando los marcadores de posición de propiedades de Spring  .
    • Cuando se carga Spring Boot  , también realizará la configuración automática del nivel de registro y  establecerá el nivel de registro logback-spring.xml de acuerdo con la configuración de la aplicación  application.properties o  application.yml en  la aplicación.logging.level.*
    • logback-spring.xml El orden de carga tiene prioridad sobre  logback.xml.
  2. logback.xml :

    • logback.xml Es un archivo de configuración de Logback general, adecuado para proyectos que no son Spring Boot o proyectos que no requieren funciones Spring Boot.
    • Si el archivo existe  logback.xml , se cargará y utilizará, ignorando cualquier archivo  logback-spring.xml.
    • logback.xml Los marcadores de posición de propiedades de Spring no se pueden usar en la configuración porque Spring no los procesará.
    • logback.xml Los niveles de registro y otras configuraciones relacionadas deben configurarse manualmente y no se ven afectados automáticamente por los demás archivos de configuración de la aplicación.

Resumir:

  • Si utiliza un proyecto Spring Boot, se recomienda utilizar  logback-spring.xml un archivo de configuración para disfrutar de la configuración automática y las funciones de marcador de posición de propiedad de Spring Boot.
  • Para proyectos que no son Spring Boot o proyectos que no requieren funciones Spring Boot,  logback.xml simplemente use el archivo de configuración.

Cabe destacar que ya sean  logback-spring.xml o  logback.xml, su sintaxis y elementos de configuración son los mismos y se pueden configurar según necesidades específicas.

Opción II

logback-spring.xml y  logback.xml son archivos que se utilizan para configurar el marco de registro de Logback. Tienen algunas diferencias en el uso y los mecanismos de carga.

logback-spring.xml Es un archivo de configuración de Logback específico para aplicaciones Spring Framework. Su integración con Spring proporciona algunas funciones y características adicionales. Cuando existe un archivo  logback-spring.xml , las aplicaciones Spring Boot lo cargarán primero. Este nombre de archivo específico es para aprovechar el mecanismo de configuración automática de Spring Boot, que permite que el registro se   configure dinámicamente logback-spring.xml desde una aplicación  application.properties o  archivo mediante el uso de marcadores de posición de propiedades de Spring. application.ymlEsto significa que puede cambiar el comportamiento del registro de Logback en tiempo de ejecución a través de la configuración de propiedades de Spring.

Por el contrario, logback.xml es un archivo de configuración de Logback de uso general que se utiliza para aplicaciones que no son de Spring o aplicaciones que no requieren integración con Spring. logback-spring.xml Logback intenta cargar  el archivo cuando no existe  logback.xml . Este archivo se utiliza normalmente para aplicaciones Java independientes u otras aplicaciones en entornos que no son Spring.

Si está utilizando el marco Spring Boot, se recomienda utilizar  logback-spring.xml archivos para configurar Logback primero para una mejor integración y capacidades de configuración dinámica. Si no está utilizando Spring Boot o no necesita integrarse con Spring, puede  logback.xml configurar Logback usando .

El archivo de configuración del registro del proyecto Spring Boot especifica el directorio de entrada del registro.

En un proyecto Spring Boot, para especificar el directorio de salida para los archivos de registro, puede utilizar el siguiente método:

1. Utilice application.propertiesel archivo de configuración:

En application.properties, puede utilizar las siguientes propiedades para especificar el directorio de salida de los archivos de registro:

logging.file.path=/path/to/logs

Reemplace /path/to/logscon la ruta al directorio donde desea que se generen los archivos de registro.

2. Utilice application.ymlel archivo de configuración:

En application.yml, puede utilizar las siguientes propiedades para especificar el directorio de salida de los archivos de registro:

logging:
  file:
    path: /path/to/logs

Nuevamente, /path/to/logsreemplácelo con la ruta al directorio donde desea que se generen los archivos de registro.

Asegúrese de que el directorio que especifique tenga los permisos adecuados para que la aplicación pueda crear y escribir archivos de registro en el directorio.

Con la configuración anterior, puede enviar archivos de registro a un directorio específico en lugar del directorio de registro predeterminado.

Ejemplo de configuración de archivo de registro

Caso numero uno

Archivo de configuración logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <contextName>logback</contextName>
    <!--输出到控制台-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!--按天生成日志-->
    <appender name="logFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <Prudent>true</Prudent>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>
                applog/%d{yyyy-MM-dd}/%d{yyyy-MM-dd}.log
            </FileNamePattern>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>
                %d{yyyy-MM-dd HH:mm:ss} -%msg%n
            </Pattern>
        </layout>
    </appender>
    <!-- logger节点,可选节点,作用是指明具体的包或类的日志输出级别,以及要使用的<appender>(可以把<appender>理解为一个日志模板)。addtivity:非必写属性,是否向上级loger传递打印信息。默认是true-->
    <logger name="com.leshangju.project" additivity="false">
        <appender-ref ref="console"/>
        <appender-ref ref="logFile"/>
    </logger>

    <root level="info">
        <appender-ref ref="console"/>
        <appender-ref ref="logFile"/>
    </root>

</configuration>

Visualización del directorio de generación de registros

Caso 2

Archivo de configuración logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="false" scanPeriod="60 seconds" debug="false">

    <springProperty scope="context" name="logPath" source="gjsp.logs.path" defaultValue="${user.home}/data/app/cars-gjsp/logs"/>

    <property name="APP_NAME" value="cars-gjsp"/>
    <property name="LOG_HOME" value="data/app/gjsp/logs/${APP_NAME}"/>
    <springProfile name="prod">
        <property name="LOG_HOME" value="/${logPath}/${APP_NAME}"/>
    </springProfile>

    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>

    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
        </layout>
    </appender>

    <appender name="appLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/${APP_NAME}.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/${APP_NAME}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
            <MaxHistory>30</MaxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [ %thread ] - [ %-5level ] [ %logger{50} : %line ] - %msg%n</pattern>
        </layout>
    </appender>

    <logger name="org.springframework" level="info" additivity="false"/>

    <logger name="io.swagger" level="OFF"/>
    <logger name="springfox.documentation" level="OFF"/>
    <logger name="io.lettuce" level="info" additivity="false"/>
    <logger name="io.netty" level="info" additivity="false"/>
    <logger name="org.apache.http.wire" level="info" additivity="false"/>
    <logger name="jdbc.connection" level="OFF"/>
    <logger name="jdbc.resultset" level="OFF"/>
    <logger name="jdbc.resultsettable" level="OFF"/>
    <logger name="jdbc.audit" level="OFF"/>
    <logger name="jdbc.sqltiming" level="INFO"/>
    <logger name="jdbc.sqlonly" level="OFF"/>

    <logger name="org.hibernate.SQL" additivity="false">
        <level value="info"/>
        <appender-ref ref="console"/>
        <appender-ref ref="appLogAppender"/>
    </logger>

    <!-- 2. 输出SQL 的参数到控制台和文件-->
    <logger name="org.hibernate.type.descriptor.sql.BasicBinder" additivity="false">
        <level value="info"/>
        <appender-ref ref="console"/>
        <appender-ref ref="appLogAppender"/>
    </logger>

    <root level="info">
        <appender-ref ref="console"/>
        <appender-ref ref="appLogAppender"/>
    </root>
</configuration>

 Visualización del directorio de generación de registros

 

Supongo que te gusta

Origin blog.csdn.net/m0_69057918/article/details/132389719
Recomendado
Clasificación