使用SLF4J在所有日志行上打印日期

时间:2012-04-17 09:44:38

标签: slf4j

在我的项目日期显示在某些行上,但我希望日期显示在所有行上 任何人都可以提供帮助

4 个答案:

答案 0 :(得分:3)

SLF4J是API。您需要配置用于执行此操作的日志记录后端。典型的例子是log4j或logback。

答案 1 :(得分:2)

Slf4j是API。您需要使用日志框架。 这是你使用slf4j-log4j.jar

的方法

在你的log4j.properties中,使用类似这样的配置。

log4j.logger.com.myapp=INFO, stdout
log4j.additivity.com.myapp=false

log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
log4j.appender.stdout.Threshold=INFO  
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} [%t] %5p %c{1}:%L - %m%n  

这里假设你的应用程序类在com.myapp。*中,并且日志输出被定向到stdout。

%d appender对应日期。

您可以看到使用in the log4j Pattern Layout docs

的其他appender的含义

答案 2 :(得分:2)

如果您使用log4j作为后端登录。配置This之类的log4j.properties文件。

答案 3 :(得分:1)

正如大家所说,SL4J是一个API,因此您需要来指定实施来帮助您。因此,如果您选择logback作为实现,您只需更改 logback.xml ,如下所示:

在您的文件中找到<pattern>,并在乞讨它的值时添加%d {yyyy-MM-dd}。所以如果你有:

  <pattern>%-5level - %msg%n</pattern>

你会改变它:

  <pattern>%d{yyyy-MM-dd} %-5level - %msg%n</pattern>

您可以使用HH,mm和ss来增加时间:%d {yyyy-MM-dd HH:mm:ss}