我想以编程方式创建一个新的log4j ConsoleAppender并将其作为追加器添加到记录器 - 我如何正确地实例化 - 使用以下似乎使log4j抱怨 - 我需要使用什么setter来正确配置它?
// log4j complains of "No output stream or file set for the appender named [null]."
logger.addAppender(new ConsoleAppender());
Run Code Online (Sandbox Code Playgroud)
据推测它是一个知道在ConsoleAppender上设置什么的情况,但我无法弄明白.我假设有一些获得默认布局的方法.我只想要一个附加到SysOut的标准ConsoleAppender.任何指导表示赞赏,谢谢.
mik*_*kej 28
您需要Writer在appender上设置一个(然后也是a Layout以避免您将看到的下一个错误.)这意味着您不能使用匿名实例,因为您需要使用setter来配置附加目的地.例如
ConsoleAppender ca = new ConsoleAppender();
ca.setWriter(new OutputStreamWriter(System.out));
ca.setLayout(new PatternLayout("%-5p [%t]: %m%n"));
logger.addAppender(ca);
Run Code Online (Sandbox Code Playgroud)
此外,您可以使用以下命令设置appender的名称:
ca.setName("My appender");
Run Code Online (Sandbox Code Playgroud)