首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于tinylog的多个作者

用于tinylog的多个作者
EN

Stack Overflow用户
提问于 2013-10-04 11:25:17
回答 4查看 1.6K关注 0票数 4

我使用丁香来满足我的日志记录需求,并且想知道是否有人知道登录到文件和控制台的方法。当我使用下面的配置时,我只能在控制台上得到输出。当我删除.writer(new ConsoleWriter())时,日志记录只用于文件(正如人们所期望的)。

代码语言:javascript
复制
Configurator.currentConfig()
                          .level(LoggingLevel.valueOf("TRACE"))
                          .writer(new RollingFileWriter(file,10))
                          .writer(new ConsoleWriter())
                          .activate();
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-12-12 11:25:16

根据docs,这是可能的(现在),“诀窍”是对addWriter()的调用,而不是对writer()方法的多次调用。

引用http://www.tinylog.org/configuration#writers

可以并行使用多个写入器。例如,可以同时将日志条目写入控制台和日志文件。示例:

代码语言:javascript
复制
Configurator.currentConfig()    
  .writer(new ConsoleWriter())    
  .addWriter(new FileWriter("log.txt"))    
  .activate();
票数 3
EN

Stack Overflow用户

发布于 2013-10-04 11:34:09

如果没有开箱即用的tinylog,AFAIK是不可能的,但是您始终可以像这样实现您自己的复合编写器:

代码语言:javascript
复制
public class MultiWriter implements LoggingWriter {
   private List<LoggingWriter> writers;

   public MultiWriter(List<LoggingWriter> writers) {
      this.writers = writers;
   }   

   @Override
   public void write(LoggingLevel level, String logEntry) {
      for (LoggingWriter writer : writers) {
         writer.write (level, logEntry);
      }
   }
}

然后像这样使用它:

代码语言:javascript
复制
Configurator.currentConfig()
                          .level(LoggingLevel.valueOf("TRACE"))
                          .writer(new MultiWriter(Arrays.asList(
                             new RollingFileWriter(file,10), new ConsoleWriter()))
                          .activate();
票数 3
EN

Stack Overflow用户

发布于 2017-08-08 14:34:49

代码语言:javascript
复制
You can use multiple file writers to write logs on different logging level.
According to docs

 1. Using property file

tinylog.writer1 = console
        tinylog.writer1.level = trace
        tinylog.writer2 = file
        tinylog.writer2.filename = log.txt
        tinylog.writer2.level = info

 2. Using java code


Configurator.currentConfig()
              .writer(new ConsoleWriter(), Level.TRACE)
              .addWriter(new FileWriter("log.txt"), Level.INFO)
              .activate();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19180041

复制
相关文章

相似问题

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