1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.core.config.properties;
18
19 import java.io.IOException;
20 import java.io.InputStream;
21 import java.util.Properties;
22
23 import org.apache.logging.log4j.core.LoggerContext;
24 import org.apache.logging.log4j.core.config.ConfigurationException;
25 import org.apache.logging.log4j.core.config.ConfigurationFactory;
26 import org.apache.logging.log4j.core.config.ConfigurationSource;
27 import org.apache.logging.log4j.core.config.Order;
28 import org.apache.logging.log4j.core.config.plugins.Plugin;
29
30
31
32
33
34
35 @Plugin(name = "PropertiesConfigurationFactory", category = ConfigurationFactory.CATEGORY)
36 @Order(8)
37 public class PropertiesConfigurationFactory extends ConfigurationFactory {
38
39 @Override
40 protected String[] getSupportedTypes() {
41 return new String[] {".properties"};
42 }
43
44 @Override
45 public PropertiesConfiguration getConfiguration(final LoggerContext loggerContext, final ConfigurationSource source) {
46 final Properties properties = new Properties();
47 try (final InputStream configStream = source.getInputStream()) {
48 properties.load(configStream);
49 } catch (final IOException ioe) {
50 throw new ConfigurationException("Unable to load " + source.toString(), ioe);
51 }
52 return new PropertiesConfigurationBuilder()
53 .setConfigurationSource(source)
54 .setRootProperties(properties)
55 .setLoggerContext(loggerContext)
56 .build();
57 }
58 }