【问题标题】:Logback XML Timestamp Printing Literal Expression StringLogback XML 时间戳打印文字表达式字符串
【发布时间】:2015-03-14 12:04:39
【问题描述】:

我正在尝试将我的应用程序的所有日志文件整合为一种更有条理和更有条理的方式。我正在使用logback,简而言之,我试图让我的日志文件每天 - 每月滚动到模式logs/MM-yyyy/application.MM-dd-yyyy.log 的文件目录。

你可以在下面看到我当前的logback.xml文件的配置:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <property name="LOG_FILE" value="logs/%d{MM-yyyy}/application.%d{MM-dd-yyyy}.log"/>
    <property name="LOG_FILE_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"/>

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>${LOG_FILE_PATTERN}</pattern>
        </encoder>
        <file>${LOG_FILE}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_FILE}</fileNamePattern>
        </rollingPolicy>
    </appender>

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

问题在于,由于某种原因,日志实际上是进入了一个文本文件结构 logs/%d{MM-yyyy}/application.%d{MM-dd-yyyy}.log 其中应该打印日期的表达式实际上只是将表达式打印为字符串。

谁能看到我正在做的事情中的问题或为我正在做的事情提供更好的解决方案?所有帮助表示赞赏。干杯!

【问题讨论】:

  • -标签不具备您认为的功能。它只是文件的路径,没有表达式评估。我认为有可能做你想做的事,试着找到它然后发布答案。

标签: xml logging configuration log4j logback


【解决方案1】:

可以在 fileNamePattern 中定义多个 %d{},但您必须将任何其他的标记为辅助。根据 logback 手册中的示例(http://logback.qos.ch/manual/appenders.html#tbrpFileNamePattern 向下滚动到示例),将您的 LOG_FILE-property 更改为以下应该每天滚动,将每个日志文件排序到文件夹中:

<property name="LOG_FILE" value="logs/%d{MM-yyyy,aux}/application.%d{MM-dd-yyyy}.log"/>

由于&lt;file&gt;-tag 没有模式替换,您必须提供当前活动日志文件所在位置的常规路径:

<file>logs/application.log</file>

虽然我目前无法测试和验证它在哪里,但最终结果应该是这样的结构:

$APP_ROOT/logs/application.log (Currently active log file)
$APP_ROOT/logs/12-2014/*.log (Daily rolled over logs for December 2014)
$APP_ROOT/logs/11-2014/*.log (Daily rolled over logs for November 2014)
...

【讨论】:

  • 这就像一个魅力。感谢您提供的非常翔实和简洁的回答:)
猜你喜欢
  • 1970-01-01
  • 2010-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多