【发布时间】:2018-05-14 10:32:48
【问题描述】:
我的 Spring Boot 应用程序中的 Logback 配置有问题。我已经定义了一些从数据库动态加载它们的值的弹簧属性,但是当我启动应用程序时,只有标签“文件”中的属性“log4j.adm.file”不起作用。它在服务器的根路径中创建了一个文件“log4j.adm.file_IS_UNDEFINED”,但在标签“fileNamePattern”中效果很好。
知道问题出在哪里吗?我附上我的 logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<springProperty name="logging.pattern.console" source="logging.pattern.console"/>
**<springProperty name="log4j.adm.file" source="log4j.adm.file"/>**
<springProperty name="log4j.adm.bck.number" source="log4j.adm.bck.number"/>
<springProperty name="log4j.adm.max.size" source="log4j.adm.max.size"/>
<springProperty name="log4j.adm.level" source="log4j.adm.level"/>
<appender name="FILE_ADMIN" class="ch.qos.logback.core.rolling.RollingFileAppender">
**<file>${log4j.adm.file}</file> ---> ERROR**
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
**<fileNamePattern>${log4j.adm.file}.%i</fileNamePattern> --> OK**
<minIndex>1</minIndex>
<maxIndex>${log4j.adm.bck.number}</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>50MB</maxFileSize>
</triggeringPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>
${logging.pattern.console}
</Pattern>
</encoder>
</appender>
<logger name="org.xxxx.xxxx" level="${log4j.adm.nivel}" additivity="false">
<appender-ref ref="FILE_ADMIN" />
</logger>
<root level="INFO">
<appender-ref ref="CONSOLE" />
</root>
【问题讨论】:
-
尝试明确命名文件 -
file.log - 看看是否可行。那么你至少会知道是弹簧属性还是其他什么东西失败了 -
我已经尝试过了,效果很好。问题是当我把 springProperty :(
-
spring属性是如何配置的?
-
对不起,我不明白你的问题......你的意思是我如何在“源”中加载值?
标签: java spring-boot logback