首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java logback FileAppender文件模式

Java logback FileAppender文件模式
EN

Stack Overflow用户
提问于 2010-10-04 19:45:27
回答 2查看 3.2K关注 0票数 0

我有这样的附加器。

代码语言:javascript
复制
<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 }作为当前日期和当前线程名称。我该怎么做呢?

EN

回答 2

Stack Overflow用户

发布于 2010-10-04 21:09:29

SiftingAppender可能就是您需要的。它被设计成根据“鉴别器”来分离日志事件,在你的例子中,“鉴别器”是日期和线程名。

票数 2
EN

Stack Overflow用户

发布于 2010-10-04 19:52:30

你的意思是你想在运行时动态设置输出文件名吗?AFAIK它不可能直接通过配置。您有两种变通方法:

  • 通过代码动态设置输出文件名,或
  • 使用Mapped Diagnostic Context,以便在同一日志文件中为日志消息添加特定于线程的数据。

第一种方法相当乏味和浪费,因为您将需要特定于实例的记录器和附加器,用于可以从不同线程调用不同实例的类。即便如此,如果相同的对象在多个线程之间共享,该怎么办呢?

第二种更自然、更简单。此外,通过使用简单的shell脚本进行一些后处理,您甚至可以将属于不同线程的日志过滤到不同的日志文件中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3854905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档