java - Logback RollingFileAppender 文件属性无法识别 springProperty 值
问题描述
我的 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>
解决方案
我认为你的问题应该在标签中使用 scope="context" 来解决。
推荐阅读
- android - 有没有办法让 Android 在跳过的帧上打印堆栈跟踪
- python - python https服务器帖子
- javascript - sqlite3 nodejs 模块,我们如何等待 db#serialize 完成
- javascript - HTTP:如果文档被缓存,那我怎么不能通过会话历史访问它?
- android - Delphi Android 应用程序 API 级别 26?
- python - Google API Oauth2 身份验证期间的 FileNotFoundError
- wpf - WPF C# 透明度/网络浏览器
- django - 分配错误之前引用的局部变量“实例”
- mysql - MySQL使用正则表达式提取子字符串
- jquery - 使用 DataTables 导出为 PDF 时格式化特定的列内容样式