2
我想手動管理logback配置 - 具體而言,我希望在必要時創建一個新的SiftingAppender,它具有FileAppender。如何手動創建SiftingAppender
我試圖創建所有對象,以便複製我以前使用過的相同的XML配置。不幸的是,我不明白如何將一個文件擴展器附加到siftappender。
下面是我使用的代碼:
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
encoder.setContext(loggerContext);
encoder.setPattern("<%d(yyyy-MM-dd HH:mm:ss)> | %.-1level | %msg %n");
encoder.start();
FileAppender<ILoggingEvent> fAppender = new FileAppender<ILoggingEvent>();
fAppender.setContext(loggerContext);
fAppender.setName(application + "_" + user);
fAppender.setFile(logUser);
fAppender.setAppend(true);
fAppender.setEncoder(encoder);
fAppender.start();
MDCBasedDiscriminator discriminator = new MDCBasedDiscriminator();
discriminator.setKey("userid");
discriminator.setDefaultValue("unknown");
discriminator.start();
LevelFilter lFilter = new LevelFilter();
lFilter.setLevel(Level.INFO);
lFilter.start();
// **HOW TO ATTACH fAppender on sAppender ????**
SiftingAppender sAppender = new SiftingAppender();
sAppender.setContext(loggerContext);
sAppender.setName(application + "_" + user + "_SIFTING");
sAppender.addFilter(lFilter);
sAppender.setDiscriminator(discriminator);
sAppender.start();
Logger logger = loggerContext.getLogger("test.mypackage");
logger.setAdditive(false);
logger.setLevel(Level.ALL);
logger.addAppender(sAppender);
你找到了一個解決方案?如果是的話,你能否用你使用的代碼添加一個答案?謝謝 – Cristiano 2014-10-02 13:17:56
號我問Ceki但他從來沒有回答:( – MychaL 2014-10-13 10:48:39