Skip to content
This repository has been archived by the owner on Dec 10, 2024. It is now read-only.

Commit

Permalink
Merge pull request #33 from akang31/master
Browse files Browse the repository at this point in the history
Only load properties with the log4j prefix
  • Loading branch information
akang31 authored Dec 7, 2023
2 parents 10488eb + 5201176 commit 8838ffc
Showing 1 changed file with 22 additions and 8 deletions.
30 changes: 22 additions & 8 deletions src/main/java/com/netflix/blitz4j/LoggingConfiguration.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,18 @@
import java.net.URL;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Properties;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicInteger;

import org.apache.commons.configuration.ConfigurationConverter;
import org.apache.commons.configuration.AbstractConfiguration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.LogManager;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.helpers.Loader;
Expand Down Expand Up @@ -318,7 +321,19 @@ public synchronized void clearProperty(Object source, String name, Object value,
* com.netflix.config.PropertyListener#configSourceLoaded(java.lang.Object)
*/
public void configSourceLoaded(Object source) {
Properties props = ConfigurationConverter.getProperties(ConfigurationManager.getConfigInstance());
AbstractConfiguration config = ConfigurationManager.getConfigInstance();
Properties props = new Properties();

char delimiter = config.getListDelimiter();

for (Iterator<String> keys = config.getKeys(LOG4J_PREFIX); keys.hasNext();) {
String key = keys.next();
List<Object> list = config.getList(key);

// turn the list into a string
props.setProperty(key, StringUtils.join(list.iterator(), delimiter));
}

reconfigure(props);
}

Expand All @@ -338,7 +353,8 @@ public synchronized void setProperty(Object source, String name, Object value,

/**
* Set a snapshot of all LOG4J properties and reconfigure if properties have been
* changed.
* changed. This assumes that the Properties being set here has already been filtered
* to only properties starting with LOG4J_PREFIX.
* @param props Complete set of ALL log4j configuration properties including all
* appenders and log level overrides
*/
Expand All @@ -347,11 +363,9 @@ public synchronized void reconfigure(Properties props) {
// set of original initialization properties
Properties newOverrideProps = new Properties();
for (Entry<Object, Object> prop : props.entrySet()) {
if (isLog4JProperty(prop.getKey().toString())) {
Object initialValue = initialProps.get(prop.getKey());
if (initialValue == null || !initialValue.equals(prop.getValue())) {
newOverrideProps.put(prop.getKey(), prop.getValue());
}
Object initialValue = initialProps.get(prop.getKey());
if (initialValue == null || !initialValue.equals(prop.getValue())) {
newOverrideProps.put(prop.getKey(), prop.getValue());
}
}

Expand Down

0 comments on commit 8838ffc

Please sign in to comment.