Line 0
Link Here
|
|
|
1 |
|
2 |
package org.apache.log4j.sysprops; |
3 |
|
4 |
import java.util.Properties; |
5 |
import org.apache.log4j.helpers.LogLog; |
6 |
|
7 |
/** |
8 |
* |
9 |
* @author LBlaze |
10 |
*/ |
11 |
public abstract class PropertyResolver |
12 |
{ |
13 |
|
14 |
private static PropertyResolver instance = null; |
15 |
|
16 |
public static PropertyResolver getInstance() |
17 |
{ |
18 |
if (instance == null) { |
19 |
instance = createInstance(); |
20 |
} |
21 |
return instance; |
22 |
} |
23 |
|
24 |
protected static PropertyResolver createInstance() |
25 |
{ |
26 |
String log4jPropertyResolver = ""; |
27 |
try { |
28 |
log4jPropertyResolver = System.getProperty("log4j.propertyResolver", null); |
29 |
if (log4jPropertyResolver != null && !log4jPropertyResolver.equals("")) { |
30 |
Object o = Class.forName(log4jPropertyResolver).newInstance(); |
31 |
if (o instanceof PropertyResolver) { |
32 |
LogLog.debug("Using PropertyResolver " + log4jPropertyResolver); |
33 |
return (PropertyResolver) o; |
34 |
} |
35 |
} else { |
36 |
LogLog.debug("Using default PropertyResolver"); |
37 |
} |
38 |
} catch (Exception e) { |
39 |
LogLog.error("Problem instantiating PropertyResolver " + log4jPropertyResolver, e); |
40 |
} |
41 |
return new DefaultPropertyResolver(); |
42 |
} |
43 |
|
44 |
public String resolveProperty(String key, Properties localProps) |
45 |
{ |
46 |
return resolveProperty(key, localProps, null); |
47 |
} |
48 |
|
49 |
public abstract String resolveProperty(String key, Properties localProps, String def); |
50 |
} |