spring-boot - spring-boot application.properties 文件可以使用 log4j2.xml 配置吗?
问题描述
我想在 application.properties 中定义高级文件日志记录,以便利用我的 log4j2.xml 文件配置。我的 log4j2 配置本身工作正常,但是我希望控制来自 application.properties 文件的日志记录级别和日志文件和路径信息。我在应用程序的 pom 文件中有 spring-boot-starter-log4j2 依赖项。
在 log4j2.xml 我有作为属性之一
<Property name="LOG_FILE">${LOG-DIR}/test.log</Property>
,其中 LOG-DIR 在同一文件的另一个(先前)属性中定义。在我的 application.properties 文件中,我有
logging.file=LOG_FILE
作为一个属性,加上几个级别的属性,例如
logging.level.org.springframework.web=DEBUG
我的 application.properties 文件中定义的这些与日志相关的属性都没有用于构建相应的日志文件。同样,当我简单地单独使用 log4j2.xml 时,它工作正常,但想利用 application.properties 的便利性进行日志配置。
非常感谢对我做错了什么的任何见解。谢谢你
解决方案
如果我正确理解了您的问题,那么您正在查看.log4j2
您可以在文件中定义日志记录属性,application.properties
如下所示:
log.file.path=/myDir/logpath
Property
然后定义如下的属性查找log4j2.xml
:
<Configuration>
<Properties>
<property name="LOG_FILE">${bundle:application:log.file.path}</property>
</Properties>
现在所有的属性都可以log4j2.xml
用${propertyName}
符号来引用,最终指向application.properties
文件中的值。
推荐阅读
- node.js - Mongoose:如何向模式添加动态索引?
- javascript - 获取 Axios.get() 数据并在 React 组件中显示
- python - 我无法播放上传到管理员的音频(网址有引号)
- java - 在启用了 javascript 的情况下,无法在 heroku 上运行无头硒
- swift - UITableview显示一个项目而不是两个项目swift xcode
- r - 从缺失数据中抵消逐行校正影响的策略
- android - React Native - android.os.TransactionTooLargeException
- vue.js - 在 vue 组合 API 中打开文件对话框
- swift - AVPlayer 不在后台 watchOS 中播放 - Swift
- reactjs - 在 react redux 中使用 axios 访问 json 数据时控制台中出现未定义的消息