使用log4j2需要两个包:apache官网上有的下:我使用的是log4j-api-2.5.jar和log4j-core-2.5.jar。
读取配置文件方法:System.setProperty("log4j.configurationFile", “文件存放路径”);
配置文件读取:
//java加载src下的配置文件
//src下的配置文件会默认的被log4j的框架加载(文件名必须log4j2.xml)。
//绝对路径配置文件
//方法1 使用 public ConfigurationSource(InputStream stream) throws IOException造
ConfigurationSource source= newConfigurationSource(newFileInputStream("D:\\log4j2.xml"));
//方法2 使用 public ConfigurationSource(InputStream stream, File file)构造函数
File config=newFile("D:\\log4j2.xml");
source= newConfigurationSource(newFileInputStream(config),config);
//方法3 使用 public ConfigurationSource(InputStream stream, URL url) 构造函数
String path="D:\\log4j2.xml";
source = newConfigurationSource(newFileInputStream(path),newFile(path).toURL());
//source.setFile(new File("D:\log4j2.xml"));
//source.setInputStream(new FileInputStream("D:\log4j2.xml"));
Configurator.initialize(null, source);
//相对路径的配置文件加载
//这里需要注意路径中不要出现中文和空格,如果存在中文,请使用url转码
//方法1 使用getResource()
String path="/com/herman/config/log4j2.xml";
URL url=ConfigTest.class.getResource(path);
ConfigurationSource source;= newConfigurationSource(newFileInputStream(newFile(url.getPath())),url);
Configurator.initialize(null, source);
/方法2 使用System.getProperty
String config=System.getProperty("user.dir");
source = newConfigurationSource(newFileInputStream(config+"\\src\\com\\herman\\config\\log4j2.xml"));
Configurator.initialize(null, source);
接下来看一下配置文件:
%d{yyyy-MM-dd HH:mm:ss} %-5level - %msg%xEx%n
./logs
smart_home
20MB
debug