Я хотел бы настроить Logback с ConsoleAppender для использования stderr, в отличие от stdout. В частности, я хотел бы сделать это с помощью чистого кода, в отличие от файлов свойств/xml. Вот моя попытка. Основные примечания относительно этого кода: когда вызывается .reset() (согласно приведенному ниже коду), ничего не выходит из системы вообще. Когда .reset() не вызывается, все журналы отправляются в STDOUT (что указывает на то, что приведенный ниже код не работает вообще).Настройка LogBack/ConsoleAppender для записи в STDERR
Какой ключ можно включить?
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.ConsoleAppender;
import org.slf4j.LoggerFactory;
// stuff
private static Logger buildLogger() {
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
Logger logger = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger(henson.class);
lc.reset();
PatternLayoutEncoder ple = new PatternLayoutEncoder();
ple.setPattern("%date %level [%thread] %logger{10} [%file:%line] %msg%n");
ple.setContext(lc);
ple.start();
ConsoleAppender<ILoggingEvent> ca = new ConsoleAppender<>();
ca.setTarget("System.err");
ca.setContext(lc);
ca.start();
logger.detachAndStopAllAppenders();
logger.addAppender(ca);
logger.setLevel(Level.DEBUG);
return logger;
}