我有这样的答案。
<appender name="Action.FileAppender" class="ch.qos.logback.core.FileAppender">
<file>logs\\${date}\\${thread}.log</file>
<encoder>
<pattern>%level - %msg%n</pattern>
</encoder>
</appender>
我希望$ {date}和$ {thread}成为当前日期和当前线程名称。我怎么能这样做?
答案 0 :(得分:2)
SiftingAppender可能就是您所需要的。它旨在根据“鉴别器”分离日志记录事件,在您的情况下,它将是日期和线程名称。
答案 1 :(得分:0)
你的意思是你想在运行时动态设置输出文件名吗? AFAIK直通配置是不可能的。您有两种解决方法:
第一种方式将是相当繁琐和浪费的,因为您需要特定于实例的记录器和appender用于可以从不同线程调用不同实例的类。即便如此,如果多个线程之间共享相同的对象会怎么样?
第二个更自然,更简单。此外,使用例如一些后处理。一个简单的shell脚本,甚至可以将属于不同线程的日志过滤到不同的日志文件中。