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 2015/07/05 08:08:02 UTC
[1/2] logging-log4j2 git commit: Add example of creating a custom
configuration factory
Repository: logging-log4j2
Updated Branches:
refs/heads/master 8d4dc1f28 -> 72ef0eb4c
Add example of creating a custom configuration factory
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/7c8dffc3
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/7c8dffc3
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/7c8dffc3
Branch: refs/heads/master
Commit: 7c8dffc30cb73c0de3d8fc0a9ea3bb71efea7317
Parents: 96327da
Author: Ralph Goers <rg...@nextiva.com>
Authored: Sat Jul 4 23:01:31 2015 -0700
Committer: Ralph Goers <rg...@nextiva.com>
Committed: Sat Jul 4 23:01:31 2015 -0700
----------------------------------------------------------------------
log4j-samples/configuration/pom.xml | 55 ++++++++++++++++
.../configuration/CustomConfiguration.java | 67 ++++++++++++++++++++
.../CustomConfigurationFactory.java | 47 ++++++++++++++
.../configuration/CustomConfigurationTest.java | 17 +++++
log4j-samples/pom.xml | 1 +
5 files changed, 187 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7c8dffc3/log4j-samples/configuration/pom.xml
----------------------------------------------------------------------
diff --git a/log4j-samples/configuration/pom.xml b/log4j-samples/configuration/pom.xml
new file mode 100644
index 0000000..8a6761a
--- /dev/null
+++ b/log4j-samples/configuration/pom.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>log4j-samples</artifactId>
+ <groupId>org.apache.logging.log4j.samples</groupId>
+ <version>2.4-SNAPSHOT</version>
+ </parent>
+ <artifactId>log4j-samples-configuration</artifactId>
+ <packaging>jar</packaging>
+ <name>Apache Log4j Samples: Configuration</name>
+ <url>http://maven.apache.org</url>
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+</project>
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7c8dffc3/log4j-samples/configuration/src/main/java/org/apache/logging/log4j/configuration/CustomConfiguration.java
----------------------------------------------------------------------
diff --git a/log4j-samples/configuration/src/main/java/org/apache/logging/log4j/configuration/CustomConfiguration.java b/log4j-samples/configuration/src/main/java/org/apache/logging/log4j/configuration/CustomConfiguration.java
new file mode 100644
index 0000000..9011a8e
--- /dev/null
+++ b/log4j-samples/configuration/src/main/java/org/apache/logging/log4j/configuration/CustomConfiguration.java
@@ -0,0 +1,67 @@
+package org.apache.logging.log4j.configuration;
+
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.core.Appender;
+import org.apache.logging.log4j.core.Layout;
+import org.apache.logging.log4j.core.appender.ConsoleAppender;
+import org.apache.logging.log4j.core.config.AbstractConfiguration;
+import org.apache.logging.log4j.core.config.ConfigurationSource;
+import org.apache.logging.log4j.core.config.LoggerConfig;
+import org.apache.logging.log4j.core.layout.PatternLayout;
+import org.apache.logging.log4j.util.PropertiesUtil;
+
+import java.io.Serializable;
+
+/**
+ * This Configuration is the same as the DefaultConfiguration but shows how a custom configuration can be built
+ * programmatically
+ */
+public class CustomConfiguration extends AbstractConfiguration {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * The name of the default configuration.
+ */
+ public static final String CONFIG_NAME = "Custom";
+
+ /**
+ * The System Property used to specify the logging level.
+ */
+ public static final String DEFAULT_LEVEL = "org.apache.logging.log4j.level";
+ /**
+ * The default Pattern used for the default Layout.
+ */
+ public static final String DEFAULT_PATTERN = "%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n";
+
+ public CustomConfiguration() {
+ this(ConfigurationSource.NULL_SOURCE);
+ }
+
+ /**
+ * Constructor to create the default configuration.
+ */
+ public CustomConfiguration(ConfigurationSource source) {
+ super(source);
+
+ setName(CONFIG_NAME);
+ final Layout<? extends Serializable> layout = PatternLayout.newBuilder()
+ .withPattern(DEFAULT_PATTERN)
+ .withConfiguration(this)
+ .build();
+ final Appender appender = ConsoleAppender.createDefaultAppenderForLayout(layout);
+ appender.start();
+ addAppender(appender);
+ final LoggerConfig root = getRootLogger();
+ root.addAppender(appender, null, null);
+
+ final String levelName = PropertiesUtil.getProperties().getStringProperty(DEFAULT_LEVEL);
+ final Level level = levelName != null && Level.valueOf(levelName) != null ?
+ Level.valueOf(levelName) : Level.ERROR;
+ root.setLevel(level);
+ }
+
+ @Override
+ protected void doConfigure() {
+ }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7c8dffc3/log4j-samples/configuration/src/main/java/org/apache/logging/log4j/configuration/CustomConfigurationFactory.java
----------------------------------------------------------------------
diff --git a/log4j-samples/configuration/src/main/java/org/apache/logging/log4j/configuration/CustomConfigurationFactory.java b/log4j-samples/configuration/src/main/java/org/apache/logging/log4j/configuration/CustomConfigurationFactory.java
new file mode 100644
index 0000000..36d54d3
--- /dev/null
+++ b/log4j-samples/configuration/src/main/java/org/apache/logging/log4j/configuration/CustomConfigurationFactory.java
@@ -0,0 +1,47 @@
+package org.apache.logging.log4j.configuration;
+
+import org.apache.logging.log4j.core.config.Configuration;
+import org.apache.logging.log4j.core.config.ConfigurationFactory;
+import org.apache.logging.log4j.core.config.ConfigurationSource;
+import org.apache.logging.log4j.core.config.Order;
+import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.core.config.xml.XmlConfiguration;
+
+import java.net.URI;
+
+/**
+ * Factory to construct a CustomConfiguration.
+ */
+@Plugin(name = "CustomConfigurationFactory", category = ConfigurationFactory.CATEGORY)
+@Order(50)
+public class CustomConfigurationFactory extends ConfigurationFactory {
+
+ /**
+ * Valid file extensions for XML files.
+ */
+ public static final String[] SUFFIXES = new String[] {"*"};
+
+ /**
+ * Returns the Configuration.
+ * @param source The InputSource.
+ * @return The Configuration.
+ */
+ @Override
+ public Configuration getConfiguration(final ConfigurationSource source) {
+ return new CustomConfiguration(source);
+ }
+
+ @Override
+ public Configuration getConfiguration(final String name, final URI configLocation) {
+ return new CustomConfiguration();
+ }
+
+ /**
+ * Returns the file suffixes for XML files.
+ * @return An array of File extensions.
+ */
+ @Override
+ public String[] getSupportedTypes() {
+ return SUFFIXES;
+ }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7c8dffc3/log4j-samples/configuration/src/test/java/org/apache/logging/log4j/configuration/CustomConfigurationTest.java
----------------------------------------------------------------------
diff --git a/log4j-samples/configuration/src/test/java/org/apache/logging/log4j/configuration/CustomConfigurationTest.java b/log4j-samples/configuration/src/test/java/org/apache/logging/log4j/configuration/CustomConfigurationTest.java
new file mode 100644
index 0000000..e63d7f7
--- /dev/null
+++ b/log4j-samples/configuration/src/test/java/org/apache/logging/log4j/configuration/CustomConfigurationTest.java
@@ -0,0 +1,17 @@
+package org.apache.logging.log4j.configuration;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.junit.Test;
+
+/**
+ *
+ */
+public class CustomConfigurationTest {
+ private Logger logger = LogManager.getLogger(CustomConfiguration.class);
+
+ @Test
+ public void testLogging() {
+ logger.error("This is a test");
+ }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7c8dffc3/log4j-samples/pom.xml
----------------------------------------------------------------------
diff --git a/log4j-samples/pom.xml b/log4j-samples/pom.xml
index c9d753a..a70fc08 100644
--- a/log4j-samples/pom.xml
+++ b/log4j-samples/pom.xml
@@ -81,6 +81,7 @@
<module>flume-common</module>
<module>flume-remote</module>
<module>flume-embedded</module>
+ <module>configuration</module>
</modules>
<build>
<plugins>
[2/2] logging-log4j2 git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/logging-log4j2
Posted by rg...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/logging-log4j2
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/72ef0eb4
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/72ef0eb4
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/72ef0eb4
Branch: refs/heads/master
Commit: 72ef0eb4cbd6ca6bed72420bb39fb5b16627624d
Parents: 7c8dffc 8d4dc1f
Author: Ralph Goers <rg...@nextiva.com>
Authored: Sat Jul 4 23:02:14 2015 -0700
Committer: Ralph Goers <rg...@nextiva.com>
Committed: Sat Jul 4 23:02:14 2015 -0700
----------------------------------------------------------------------
.../log4j/core/appender/AbstractManager.java | 7 +-
.../core/appender/rolling/PatternProcessor.java | 6 +-
.../rolling/TimeBasedTriggeringPolicy.java | 8 +-
.../logging/log4j/core/impl/ThrowableProxy.java | 112 +++++++++++--------
.../core/pattern/DatePatternConverter.java | 4 +-
...nsoleAppenderDefaultSuppressedThrowable.java | 67 +++++++++++
.../log4j/core/impl/ThrowableProxyTest.java | 25 +++++
...4j2-console-default-suppressed-throwable.xml | 31 +++++
pom.xml | 8 +-
src/changes/changes.xml | 8 +-
src/site/xdoc/articles.xml | 4 +
src/site/xdoc/manual/async.xml | 6 +-
12 files changed, 224 insertions(+), 62 deletions(-)
----------------------------------------------------------------------