使用春季的基于时间的滚动策略



这是我正在使用的logback.xml代码:

<configuration>
<property resource="C:Codepin-wspin-warsrcmainresourcesMETA-INFconfigapp.properties" scope="context" />
<appender name="FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.location}pin-app.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${log.location}pin-app.%d{yyyy-MM-dd}.log
</FileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%date %level [%thread] %X{username} [%file:%line] %msg%n
</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="FILE" />
</root>
</configuration>
  1. 我正在尝试从我的应用程序属性中获取日志位置的值。但它不起作用。有人可以建议我应该使用什么属性标签吗?
  2. 当我在日志
  3. 本身.xml对日志位置进行硬编码时,我可以看到日志打印在我的日志文件中。 但即使在这种情况下,也只有 pin-app.log 附加了值,但 pin-app.%d{yyyy-MM-dd}.log 没有被创建。 我在使用基于时间的滚动策略时做错了什么吗?
  4. 只是好奇,我们是否可以从 xml 文件在控制台中打印值(如本例中的 ${log.location}(?

我使用的是简单的Spring 4 MVC,而不是SpringBoot,以下是我正在使用的slf4j和logback版本:

<version.slf4j>1.6.4</version.slf4j>
<version.logback>1.0.1</version.logback>
<java-version>1.8</java-version>
<property>

具有选项">文件"和">资源"。

例如

<property resource="logging.properties"/> <!-- Path relavtive to classpath. E.g. file in src/main/resources or within .jar when built -->

<property file="logging.properties"/> <!-- File in root folder of project or folder where your .jar is located -->

对于您描述的情况(使用完全限定路径(,它与">file"选项一起使用。

对于 3. 问题:是的,文档指出"变量替换可以在配置文件中可以指定值的任何点发生。

示例

属性文件:

randomProperty=Hello

登录.xml:

<pattern>${randomProperty} %date %level [%thread] %X{username} [%file:%line] %msg%n</pattern>

附加提示:

<configuration debug="true">

将向您展示有关初始化日志记录时实际问题的更多信息。

最新更新