背景:在同时使用Log4J和commons-logging库时,单独运行一个类进行测试的时候,总是打印如下警告信息:
log4j:WARN No appenders could be found for logger (xxx.LogTool).
log4j:WARN Please initialize the log4j system properly.
所以需要一个快捷的配置Log4J打印到控制台的方案,解决单独运行类做测试时消息打印到控制台的方案
方案说明:直接使用Java类简易配置Log4J输出到控制台,只需要在程序的起始位置添加调用一个方法LogTool.initLogConfig()即可。关键点就是使用Properties类保存配置属性,然后通过PropertyConfigurator.configure(prop);进行装载。
代码如下:
import java.util.Properties;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
/**
*
* @author alan
*/
public class LogTool {
private static Logger log = Logger.getLogger(LogTool.class);
public static void test() {
log.info("Config successfully!");
}
/**
* 为Log4j的日志输出进行配置——输出到控制台
*
* @param dirPath
*/
public static void initLogConfig() {
Properties prop = new Properties();
prop.setProperty("log4j.rootLogger", "INFO, console");
prop.setProperty("log4j.appender.console", "org.apache.log4j.ConsoleAppender");
prop.setProperty("log4j.appender.console.layout", "org.apache.log4j.PatternLayout");
prop.setProperty("log4j.appender.console.layout.ConversionPattern", "- %d %-5p (%F:%L) - %m%n");
PropertyConfigurator.configure(prop);
log.info("Config console appender successfully!");
}
public static void main(String[] args) {
initLogConfig();
test();
initLogConfig();
test();
}
}
如果有朋友有更简单的解决方案,也请留言一下,谢谢