You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rg...@apache.org on 2013/12/28 07:30:33 UTC
svn commit: r1553789 - in /logging/log4j/log4j2/trunk/log4j-core/src:
main/java/org/apache/logging/log4j/core/config/JSONConfiguration.java
test/java/org/apache/logging/log4j/core/AppenderRefLevelJsonTest.java
test/resources/log4j-reference-level.json
Author: rgoers
Date: Sat Dec 28 06:30:33 2013
New Revision: 1553789
URL: http://svn.apache.org/r1553789
Log:
LOG4J2-464 - Support arrays in sub-elements
Added:
logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelJsonTest.java
- copied, changed from r1542882, logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelTest.java
logging/log4j/log4j2/trunk/log4j-core/src/test/resources/log4j-reference-level.json
- copied, changed from r1542882, logging/log4j/log4j2/trunk/log4j-core/src/test/resources/log4j-reference-level.xml
Modified:
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/JSONConfiguration.java
Modified: logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/JSONConfiguration.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/JSONConfiguration.java?rev=1553789&r1=1553788&r2=1553789&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/JSONConfiguration.java (original)
+++ logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/JSONConfiguration.java Sat Dec 28 06:30:33 2013
@@ -232,7 +232,16 @@ public class JSONConfiguration extends B
if (itemEntry.getValue().isObject()) {
LOGGER.debug("Processing node for object " + itemEntry.getKey());
itemChildren.add(constructNode(itemEntry.getKey(), item, itemEntry.getValue()));
+ } else if (itemEntry.getValue().isArray()) {
+ JsonNode array = itemEntry.getValue();
+ String entryName = itemEntry.getKey();
+ LOGGER.debug("Processing array for object " + entryName);
+ final PluginType<?> itemEntryType = pluginManager.getPluginType(entryName);
+ for (int j = 0; j < array.size(); ++j) {
+ itemChildren.add(constructNode(entryName, item, array.get(j)));
+ }
}
+
}
children.add(item);
}
@@ -240,6 +249,8 @@ public class JSONConfiguration extends B
LOGGER.debug("Processing node for object " + entry.getKey());
children.add(constructNode(entry.getKey(), node, n));
}
+ } else {
+ LOGGER.debug("Node {} is of type {}", entry.getKey(), n.getNodeType());
}
}
Copied: logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelJsonTest.java (from r1542882, logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelTest.java)
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelJsonTest.java?p2=logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelJsonTest.java&p1=logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelTest.java&r1=1542882&r2=1553789&rev=1553789&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelTest.java (original)
+++ logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelJsonTest.java Sat Dec 28 06:30:33 2013
@@ -16,11 +16,6 @@
*/
package org.apache.logging.log4j.core;
-import static org.junit.Assert.assertTrue;
-
-import java.util.List;
-import java.util.Map;
-
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Marker;
import org.apache.logging.log4j.MarkerManager;
@@ -33,12 +28,17 @@ import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
+import java.util.List;
+import java.util.Map;
+
+import static org.junit.Assert.assertTrue;
+
/**
*
*/
-public class AppenderRefLevelTest {
+public class AppenderRefLevelJsonTest {
- private static final String CONFIG = "log4j-reference-level.xml";
+ private static final String CONFIG = "log4j-reference-level.json";
private static Configuration config;
private static ListAppender app1;
private static ListAppender app2;
Copied: logging/log4j/log4j2/trunk/log4j-core/src/test/resources/log4j-reference-level.json (from r1542882, logging/log4j/log4j2/trunk/log4j-core/src/test/resources/log4j-reference-level.xml)
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/test/resources/log4j-reference-level.json?p2=logging/log4j/log4j2/trunk/log4j-core/src/test/resources/log4j-reference-level.json&p1=logging/log4j/log4j2/trunk/log4j-core/src/test/resources/log4j-reference-level.xml&r1=1542882&r2=1553789&rev=1553789&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/test/resources/log4j-reference-level.xml (original)
+++ logging/log4j/log4j2/trunk/log4j-core/src/test/resources/log4j-reference-level.json Sat Dec 28 06:30:33 2013
@@ -1,50 +1,38 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
--->
-<Configuration status="warn" name="XMLConfigTest" packages="org.apache.logging.log4j.test">
- <Appenders>
- <Console name="STDOUT">
- <PatternLayout pattern="%m%n"/>
- </Console>
- <List name="LIST1"/>
- <List name="LIST2"/>
- </Appenders>
-
- <Loggers>
- <Logger name="org.apache.logging.log4j.test1" level="trace" additivity="false">
- <AppenderRef ref="LIST1" level="trace"/>
- <AppenderRef ref="LIST2" level="error"/>
- </Logger>>
-
- <Logger name="org.apache.logging.log4j.test2" level="debug" additivity="false">
- <AppenderRef ref="LIST1" level="WARN"/>
- <AppenderRef ref="LIST2" level="debug"/>
- </Logger>>
-
- <Logger name="org.apache.logging.log4j.test3" level="trace" additivity="false">
- <AppenderRef ref="LIST1" level="trace">
- <MarkerFilter marker="TEST" onmatch="deny" onmismatch="accept"/>
- </AppenderRef>
- </Logger>>
-
- <Root level="error">
- <AppenderRef ref="STDOUT"/>
- </Root>
- </Loggers>
-
-</Configuration>
\ No newline at end of file
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
+{ "configuration": { "status": "debug", "XMLConfigTest": "RoutingTest", "packages": "org.apache.logging.log4j.test",
+ "appenders": {
+ "appender": [
+ { "type": "Console", "name": "STDOUT", "PatternLayout": { "pattern": "%m%n" }},
+ { "type": "List", "name": "LIST1"},
+ { "type": "List", "name": "LIST2"}
+ ]
+ },
+ "loggers": {
+ "logger": [
+ { "name": "org.apache.logging.log4j.test1", "level": "trace", "additivity": "false",
+ "AppenderRef": [{ "ref": "LIST1", "level": "trace" }, {"ref": "LIST2", "level": "error"}]},
+ { "name": "org.apache.logging.log4j.test2", "level": "debug", "additivity": "false",
+ "AppenderRef": [{ "ref": "LIST1", "level": "warn" }, {"ref": "LIST2", "level": "debug"}]},
+ { "name": "org.apache.logging.log4j.test3", "level": "trace", "additivity": "false",
+ "AppenderRef": {"ref": "LIST1", "level": "trace",
+ "MarkerFilter": {"marker" : "TEST", "onMatch": "deny", "onMismatch": "accept"}} }
+ ],
+ "root": { "level": "error", "AppenderRef": { "ref": "STDOUT" }}
+ }
+ }
+}
\ No newline at end of file