我正在使用Spring Boot构建命令行应用程序。在这样的应用程序中,不适合使用logback控制台日志记录。如何完全禁用控制台附加程序,但仍使文件附加程序与默认的Spring Boot支持一起使用?
我创建了一个功能请求,以在此处更简单地支持此功能:
https://github.com/spring-projects/spring- boot/issues/1612
只需添加一个名为logback.xml在src/main/resources与像(原始拷贝除了控制台部分从spring启动的源)的内容:
logback.xml
src/main/resources
<?xml version="1.0" encoding="UTF-8"?> <configuration> <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/> <property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } [%t] --- %-40.40logger{39} : %m%n%wex"/> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <encoder> <pattern>${FILE_LOG_PATTERN}</pattern> </encoder> <file>${LOG_FILE}</file> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>${LOG_FILE}.%i</fileNamePattern> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> </appender> <root level="INFO"> <appender-ref ref="FILE" /> </root> </configuration>
注意
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/>
为了支持从Spring Boot的logging.file和设置日志文件,需要使用此文件logging.path。
logging.file
logging.path
如果您要做的只是设置一些标准日志文件,则可以在上面的属性中设置其路径。
更新(02-04-2015)
在较新版本的Spring Boot中,您可以轻松地包括base.xmlSpring Boot中的from并创建以下内容logback.xml。
base.xml
<?xml version="1.0" encoding="UTF-8"?> <configuration> <include resource="org/springframework/boot/logging/logback/base.xml" /> <root level="INFO"> <appender-ref ref="FILE" /> </root> </configuration>
更新(15-09-2017)
为了在Spring Boot 1.5.x和2.0.0.M4上运行,我添加了一个名为的文件logback- spring.xml并将其添加到resources目录中。该文件可能看起来像这样
logback- spring.xml
resources
<?xml version="1.0" encoding="UTF-8"?> <configuration> <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/> <property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } [%t] --- %-40.40logger{39} : %m%n"/> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <encoder> <pattern>${FILE_LOG_PATTERN}</pattern> </encoder> <file>${LOG_FILE}</file> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>${LOG_FILE}.%i</fileNamePattern> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> </appender> <root level="INFO"> <appender-ref ref="FILE" /> </root> </configuration>