我在我的桌面应用程序中使用SLF4Jwith 。Logback应用程序可以找到配置文件(target/classes/logback.xml)并以正确的方式配置记录器。但是当我更改配置文件 ( <root level="debug">) 并重新启动应用程序时,我的记录器设置没有任何变化。这是我的配置:<configuration debug="true" scan="true" scanPeriod="10 seconds"> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>${consoleLayoutPattern}</pattern> </encoder> </appender> <appender name="LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${fileName}</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${filePattern}</fileNamePattern> <maxHistory>60</maxHistory> <totalSizeCap>3GB</totalSizeCap> </rollingPolicy> <encoder> <pattern>${rollingFilePatternLayoutPattern}</pattern> </encoder> </appender> <root level="error"> <appender-ref ref="LOG_FILE" /> <appender-ref ref="CONSOLE" /> </root></configuration>我做错了什么?是否有任何解决方案可以xml在应用程序重启后跟踪 jar 内部配置更改并刷新日志记录设置?
1 回答
白衣非少年
TA贡献1155条经验 获得超0个赞
为了不重新构建您的项目,您实际上必须将日志配置文件放在项目之外。我的意思是在您的应用程序属性中放置此文件的路径。
application.properties
如果您使用的是 Spring Boot,则可以像这样在文件中配置日志配置文件的路径:
logging.config=/home/path_to/logback.xml
当您启动您的应用程序时执行此操作,它将使用指定的应用程序,您将不必重建您的项目。
由于此路径可能会根据您的环境而变化,我强烈建议您在暂存或生产环境中外部化日志配置文件,如前所述,但也使用外部 application.properties 文件。
您可以在启动 Java 程序时简单地执行此操作:
java -Dspring.config.location=file:///home/.../application.properties
添加回答
举报
0/150
提交
取消