我使用丁香来满足我的日志记录需求,并且想知道是否有人知道登录到文件和控制台的方法。当我使用下面的配置时,我只能在控制台上得到输出。当我删除.writer(new ConsoleWriter())时,日志记录只用于文件(正如人们所期望的)。
Configurator.currentConfig()
.level(LoggingLevel.valueOf("TRACE"))
.writer(new RollingFileWriter(file,10))
.writer(new ConsoleWriter())
.activate();发布于 2015-12-12 11:25:16
根据docs,这是可能的(现在),“诀窍”是对addWriter()的调用,而不是对writer()方法的多次调用。
引用http://www.tinylog.org/configuration#writers
可以并行使用多个写入器。例如,可以同时将日志条目写入控制台和日志文件。示例:
Configurator.currentConfig()
.writer(new ConsoleWriter())
.addWriter(new FileWriter("log.txt"))
.activate();发布于 2013-10-04 11:34:09
如果没有开箱即用的tinylog,AFAIK是不可能的,但是您始终可以像这样实现您自己的复合编写器:
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);
}
}
}然后像这样使用它:
Configurator.currentConfig()
.level(LoggingLevel.valueOf("TRACE"))
.writer(new MultiWriter(Arrays.asList(
new RollingFileWriter(file,10), new ConsoleWriter()))
.activate();发布于 2017-08-08 14:34:49
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();https://stackoverflow.com/questions/19180041
复制相似问题