我想以编程方式创建一个新的log4j ConsoleAppender并将其作为追加器添加到记录器中-我该如何正确地实例化它-使用以下方法似乎使log4j提示-我需要使用哪些 setter 来正确配置它?

// log4j complains of "No output stream or file set for the appender named [null]."
logger.addAppender(new ConsoleAppender());

大概是知道在ConsoleAppender上设置什么的情况,但我不知道。我认为有某种方法可以获取默认布局。我只想要一个附加到SysOut的标准ConsoleAppender。任何指导表示赞赏,谢谢。

最佳答案

您将需要在附加程序上设置Writer(然后还要设置Layout,以避免出现下一个错误。)这意味着您不能使用匿名实例,因为需要使用setter来配置附加器。例如

ConsoleAppender ca = new ConsoleAppender();
ca.setWriter(new OutputStreamWriter(System.out));
ca.setLayout(new PatternLayout("%-5p [%t]: %m%n"));
logger.addAppender(ca);

另外,您可以使用以下命令设置附加程序的名称:
ca.setName("My appender");

10-08 01:28