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