配置Logback:报告应用程序启动时间而不是当前日期/时间

时间:2017-03-23 07:10:02

标签: datetime logback

在开发环境中进行故障排除时,我希望从应用程序启动时间开始,而不是在日志中显示当前日期/时间。

dmesg输出相似。

我应该使用哪种配置和格式化程序?

更新官方网站上有一个示例:https://logback.qos.ch/manual/layouts.html#writingYourOwnLayout,其中实现了自定义布局:

import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.LayoutBase;

public class MySampleLayout extends LayoutBase<ILoggingEvent> {

  public String doLayout(ILoggingEvent event) {
    StringBuffer sbuf = new StringBuffer(128);
    sbuf.append(event.getTimeStamp() - event.getLoggingContextVO.getBirthTime());
    sbuf.append(" ");
    sbuf.append(event.getLevel());
    return sbuf.toString();
  }
}

对我而言,它过于复杂。这样简单的事情不应该需要编译,而是配置......为什么我需要重新打包jar或扩展CLASSPATH以包含自定义书面作者?

1 个答案:

答案 0 :(得分:1)

似乎官方文档有关于此的说明:

r / relative    Outputs the number of milliseconds elapsed since the start
                of the application until the creation of the logging event. 

但您无法将其格式化为date

    <encoder>
        <pattern>%r %5p [%15.15t] %logger%n%m%wEx%n</pattern>
    </encoder>