gpt4 book ai didi

java - logback.xml 中是否有办法通过类路径 :, 指定文件日志目标而无需绝对路径?

转载 作者:IT老高 更新时间:2023-10-28 21:01:03 25 4
gpt4 key购买 nike

我的 logback.xml 配置文件中有这个 appender:

<appender name="FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>classpath:addressbookLog.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%d{dd MMM yyyy;HH:mm:ss} %-5level %logger{36} - %msg%n
</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<FileNamePattern>classpath:addressbookLog.%i.log.zip</FileNamePattern>
<MinIndex>1</MinIndex>
<MaxIndex>10</MaxIndex>
</rollingPolicy>

<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>2MB</MaxFileSize>
</triggeringPolicy>
</appender>

以便我通过类路径以相对方式指定要在其中打印日志的文件的路径,但它不起作用,没有创建和写入文件 addressbookLog.log。它仅适用于/home/andrea/.../resources/addressbookLog.log 等绝对路径您对如何使其与类路径一起工作有任何想法吗?

最佳答案

Chapter 3: Logback configuration: Variable substitution告诉我们引用外部定义的变量的各种方法,例如系统属性classpath

重要的配置是创建一个包含所有变量的单独文件。我们也可以引用类路径上的资源而不是文件。例如

logback.xml

<configuration>

<property resource="resource1.properties" />

<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<!-- Here we can refer to the variable
defined at the resource1.properties -->
<file>${USER_HOME}/myApp.log</file>
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>

<root level="debug">
<appender-ref ref="FILE" />
</root>
</configuration>

外部属性文件(resource1.properties)

USER_HOME=/path/to/somewhere

请注意,resource1.properties 是在 classpath 中可用的资源。

您可以在 Chapter 3: Logback configuration: Variable substitution 上查看完整版.我希望这可能会有所帮助。

关于java - logback.xml 中是否有办法通过类路径 :, 指定文件日志目标而无需绝对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16480052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com