Java logback:以编程方式全局添加新的appender,如logback.xml中所示

Java logback:以编程方式全局添加新的appender,如logback.xml中所示,java,logback,appender,Java,Logback,Appender,正如其他帖子所示(例如),可以通过代码添加appender,而不是在logback.xml中定义它 问题:与往常一样,该程序在几个java类中使用了许多不同的记录器实例。所有这些例子都是这样的: static final Logger Logger=(Logger)LoggerFactory.getLogger(SomeClassName.class); 如果我现在按规范添加一个新的appender(是否按规范添加?) Logger rootLogger=(Logger)LoggerFacto

正如其他帖子所示(例如),可以通过代码添加appender,而不是在logback.xml中定义它

问题:与往常一样,该程序在几个java类中使用了许多不同的记录器实例。所有这些例子都是这样的:

static final Logger Logger=(Logger)LoggerFactory.getLogger(SomeClassName.class);
如果我现在按规范添加一个新的appender(是否按规范添加?)

Logger rootLogger=(Logger)LoggerFactory.getLogger(Logger.ROOT\u Logger\u NAME);
LoggerContext lc=rootLogger.getLoggerContext();
PatternLayoutCoder ple=新的PatternLayoutCoder();
setPattern(“%date{ISO8601}%level${PID}%-32c{32}[%12t]:%message%n”);
ple.setContext(lc);
ple.start();
SizeAndTimeBasedRollingPolicy rp=新的SizeAndTimeBasedRollingPolicy();
rp.setContext(lc);
rp.setMaxHistory(25);
rp.setMaxFileSize(FileSize.valueOf(“200KB”);
rp.setTotalSizeCap(FileSize.valueOf(“1GB”);
rp.setFileNamePattern(
“logs/archived/”+Zeb2JiraRESTLoader.class.getSimpleName()+“%d{yyyy-MM-dd}.%i.log.zip”);
RollingFileAppender rfa=新的RollingFileAppender();
setFile(“logs/”+Zeb2JiraRESTLoader.class.getSimpleName()+”.log”);
rfa.setName(“文件附录”);
rfa.setContext(lc);
设置编码器(ple);
设置滚动策略(rp);
rp.setParent(rfa);
rp.start();
rfa.start();
rootLogger.addAppender(rfa);
rootLogger.setLevel(Level.INFO);
rootLogger.setAdditive(true);
rootLogger.iteratorforappendes().forEachRemaining(System.out::println);
//导致控制台输出:

//ch.qos.logback.core.ConsoleAppender[STDOUT]您是否尝试了其中的选项@Aksapy那篇文章并没有解决我的问题。该程序完美地找到了logback.xml文件。您是否尝试了其中的选项@Aksapy那篇文章并没有解决我的问题。程序可以完美地找到logback.xml文件。