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.properties
o .application.yml
1. Utilice application.properties
archivos:
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.xml
como 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.yml
archivos:
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.xml
como 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.
-
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ónapplication.properties
oapplication.yml
en la aplicación.logging.level.*
logback-spring.xml
El orden de carga tiene prioridad sobrelogback.xml
.
-
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 archivologback-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.yml
Esto 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.properties
el 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/logs
con la ruta al directorio donde desea que se generen los archivos de registro.
2. Utilice application.yml
el 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/logs
reemplá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