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 2019/06/19 03:58:44 UTC

[logging-log4j2] branch master updated (65af7d8 -> c65002e)

This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git.


    from 65af7d8  Add org.apache.logging.log4j.junit.LoggerContextRule.getConfigurationLocation().
     new 3aab062  LOG4J2-2427 log4j2 filter for logs with no markers
     new d090c67  removed commented code
     new 94e097f  added documentation to the filters section
     new c65002e  master merged

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../{MarkerFilter.java => NoMarkerFilter.java}     | 99 +++++++++-------------
 ...rkerFilterTest.java => NoMarkerFilterTest.java} | 27 +++---
 src/site/asciidoc/manual/filters.adoc              | 47 ++++++++++
 3 files changed, 97 insertions(+), 76 deletions(-)
 copy log4j-core/src/main/java/org/apache/logging/log4j/core/filter/{MarkerFilter.java => NoMarkerFilter.java} (57%)
 copy log4j-core/src/test/java/org/apache/logging/log4j/core/filter/{MarkerFilterTest.java => NoMarkerFilterTest.java} (69%)


[logging-log4j2] 01/04: LOG4J2-2427 log4j2 filter for logs with no markers

Posted by rg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit 3aab0628524777e48bbcf950b428276fdc4366f7
Author: Rimal <ri...@gmail.com>
AuthorDate: Fri Aug 31 01:30:51 2018 +0530

    LOG4J2-2427 log4j2 filter for logs with no markers
---
 .../logging/log4j/core/filter/NoMarkerFilter.java  | 151 +++++++++++++++++++++
 .../log4j/core/filter/NoMarkerFilterTest.java      |  58 ++++++++
 2 files changed, 209 insertions(+)

diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/NoMarkerFilter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/NoMarkerFilter.java
new file mode 100644
index 0000000..88d0f0f
--- /dev/null
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/NoMarkerFilter.java
@@ -0,0 +1,151 @@
+/*
+ * 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.
+ */
+package org.apache.logging.log4j.core.filter;
+
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.Marker;
+import org.apache.logging.log4j.core.Filter;
+import org.apache.logging.log4j.core.LogEvent;
+import org.apache.logging.log4j.core.Logger;
+import org.apache.logging.log4j.core.config.Node;
+import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory;
+import org.apache.logging.log4j.message.Message;
+import org.apache.logging.log4j.util.PerformanceSensitive;
+
+/**
+ * This filter returns the onMatch result if the marker in the LogEvent is the same as or has the
+ * configured marker as a parent.
+ */
+@Plugin(name = "NoMarkerFilter", category = Node.CATEGORY, elementType = Filter.ELEMENT_TYPE, printObject = true)
+@PerformanceSensitive("allocation")
+public final class NoMarkerFilter extends AbstractFilter {
+
+    private NoMarkerFilter(final Result onMatch, final Result onMismatch) {
+        super(onMatch, onMismatch);
+    }
+
+    @Override
+    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
+                         final Object... params) {
+        return filter(marker);
+    }
+
+    @Override
+    public Result filter(final Logger logger, final Level level, final Marker marker, final Object msg,
+                         final Throwable t) {
+        return filter(marker);
+    }
+
+    @Override
+    public Result filter(final Logger logger, final Level level, final Marker marker, final Message msg,
+                         final Throwable t) {
+        return filter(marker);
+    }
+
+    @Override
+    public Result filter(final LogEvent event) {
+        return filter(event.getMarker());
+    }
+
+    @Override
+    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
+                         final Object p0) {
+        return filter(marker);
+    }
+
+    @Override
+    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
+                         final Object p0, final Object p1) {
+        return filter(marker);
+    }
+
+    @Override
+    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
+                         final Object p0, final Object p1, final Object p2) {
+        return filter(marker);
+    }
+
+    @Override
+    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
+                         final Object p0, final Object p1, final Object p2, final Object p3) {
+        return filter(marker);
+    }
+
+    @Override
+    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
+                         final Object p0, final Object p1, final Object p2, final Object p3,
+                         final Object p4) {
+        return filter(marker);
+    }
+
+    @Override
+    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
+                         final Object p0, final Object p1, final Object p2, final Object p3,
+                         final Object p4, final Object p5) {
+        return filter(marker);
+    }
+
+    @Override
+    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
+                         final Object p0, final Object p1, final Object p2, final Object p3,
+                         final Object p4, final Object p5, final Object p6) {
+        return filter(marker);
+    }
+
+    @Override
+    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
+                         final Object p0, final Object p1, final Object p2, final Object p3,
+                         final Object p4, final Object p5, final Object p6,
+                         final Object p7) {
+        return filter(marker);
+    }
+
+    @Override
+    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
+                         final Object p0, final Object p1, final Object p2, final Object p3,
+                         final Object p4, final Object p5, final Object p6,
+                         final Object p7, final Object p8) {
+        return filter(marker);
+    }
+
+    @Override
+    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
+                         final Object p0, final Object p1, final Object p2, final Object p3,
+                         final Object p4, final Object p5, final Object p6,
+                         final Object p7, final Object p8, final Object p9) {
+        return filter(marker);
+    }
+
+    private Result filter(final Marker marker) {
+        return null == marker ? onMatch : onMismatch;
+    }
+
+
+    @PluginBuilderFactory
+    public static Builder newBuilder() {
+        return new Builder();
+    }
+
+    public static class Builder extends AbstractFilterBuilder<Builder> implements org.apache.logging.log4j.core.util.Builder<NoMarkerFilter> {
+
+        @Override
+        public NoMarkerFilter build() {
+            return new NoMarkerFilter(this.getOnMatch(), this.getOnMismatch());
+        }
+    }
+}
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/NoMarkerFilterTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/NoMarkerFilterTest.java
new file mode 100644
index 0000000..dee24a4
--- /dev/null
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/NoMarkerFilterTest.java
@@ -0,0 +1,58 @@
+/*
+ * 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.
+ */
+package org.apache.logging.log4j.core.filter;
+
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.Marker;
+import org.apache.logging.log4j.MarkerManager;
+import org.apache.logging.log4j.core.Filter;
+import org.apache.logging.log4j.core.LogEvent;
+import org.apache.logging.log4j.core.impl.Log4jLogEvent;
+import org.apache.logging.log4j.message.SimpleMessage;
+import org.junit.Test;
+
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+
+public class NoMarkerFilterTest {
+
+    @Test
+    public void testMarkers() {
+        final Marker sampleMarker = MarkerManager.getMarker("SampleMarker");
+        NoMarkerFilter filter = NoMarkerFilter.newBuilder().build();
+        filter.start();
+        assertTrue(filter.isStarted());
+        assertSame(Filter.Result.DENY, filter.filter(null, null, sampleMarker, (Object) null, (Throwable) null));
+        assertSame(Filter.Result.NEUTRAL, filter.filter(null, null, null, (Object) null, (Throwable) null));
+        filter.stop();
+        LogEvent event = Log4jLogEvent.newBuilder() //
+//                .setMarker(grandChild) //
+                .setLevel(Level.DEBUG) //
+                .setMessage(new SimpleMessage("Hello, world!")).build();
+        assertSame(Filter.Result.NEUTRAL, filter.filter(event));
+
+        filter.start();
+        assertSame(Filter.Result.NEUTRAL, filter.filter(event));
+        event = Log4jLogEvent.newBuilder() //
+                .setMarker(sampleMarker) //
+                .setLevel(Level.DEBUG) //
+                .setMessage(new SimpleMessage("Hello, world!")).build();
+        assertSame(Filter.Result.DENY, filter.filter(event));
+        filter.stop();
+    }
+
+}


[logging-log4j2] 04/04: master merged

Posted by rg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit c65002eeb1e5161b08f215197d88b71990aba64f
Author: Rimal <ri...@gmail.com>
AuthorDate: Mon Jun 17 12:33:42 2019 +0530

    master merged
---
 .../java/org/apache/logging/log4j/core/filter/NoMarkerFilter.java   | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/NoMarkerFilter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/NoMarkerFilter.java
index 07c9787..258a4be 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/NoMarkerFilter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/NoMarkerFilter.java
@@ -21,10 +21,10 @@ import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.core.Filter;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.Logger;
-import org.apache.logging.log4j.core.config.Node;
-import org.apache.logging.log4j.core.config.plugins.Plugin;
-import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory;
 import org.apache.logging.log4j.message.Message;
+import org.apache.logging.log4j.plugins.Node;
+import org.apache.logging.log4j.plugins.Plugin;
+import org.apache.logging.log4j.plugins.PluginBuilderFactory;
 import org.apache.logging.log4j.util.PerformanceSensitive;
 
 /**


[logging-log4j2] 02/04: removed commented code

Posted by rg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit d090c67866701e5fef6a095d32f6959be73f1e03
Author: Rimal <ri...@gmail.com>
AuthorDate: Thu Sep 20 17:24:26 2018 +0530

    removed commented code
---
 .../java/org/apache/logging/log4j/core/filter/NoMarkerFilterTest.java    | 1 -
 1 file changed, 1 deletion(-)

diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/NoMarkerFilterTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/NoMarkerFilterTest.java
index dee24a4..f833858 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/NoMarkerFilterTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/NoMarkerFilterTest.java
@@ -40,7 +40,6 @@ public class NoMarkerFilterTest {
         assertSame(Filter.Result.NEUTRAL, filter.filter(null, null, null, (Object) null, (Throwable) null));
         filter.stop();
         LogEvent event = Log4jLogEvent.newBuilder() //
-//                .setMarker(grandChild) //
                 .setLevel(Level.DEBUG) //
                 .setMessage(new SimpleMessage("Hello, world!")).build();
         assertSame(Filter.Result.NEUTRAL, filter.filter(event));


[logging-log4j2] 03/04: added documentation to the filters section

Posted by rg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit 94e097f4317c22164f0b079461d0f6e548bc11dd
Author: Rimal <ri...@gmail.com>
AuthorDate: Mon Jun 17 11:42:05 2019 +0530

    added documentation to the filters section
---
 .../logging/log4j/core/filter/NoMarkerFilter.java  |  3 +-
 src/site/asciidoc/manual/filters.adoc              | 47 ++++++++++++++++++++++
 2 files changed, 48 insertions(+), 2 deletions(-)

diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/NoMarkerFilter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/NoMarkerFilter.java
index 88d0f0f..07c9787 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/NoMarkerFilter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/NoMarkerFilter.java
@@ -28,8 +28,7 @@ import org.apache.logging.log4j.message.Message;
 import org.apache.logging.log4j.util.PerformanceSensitive;
 
 /**
- * This filter returns the onMatch result if the marker in the LogEvent is the same as or has the
- * configured marker as a parent.
+ * This filter returns the onMatch result if there is no marker in the LogEvent.
  */
 @Plugin(name = "NoMarkerFilter", category = Node.CATEGORY, elementType = Filter.ELEMENT_TYPE, printObject = true)
 @PerformanceSensitive("allocation")
diff --git a/src/site/asciidoc/manual/filters.adoc b/src/site/asciidoc/manual/filters.adoc
index 4796c90..4bdef82 100644
--- a/src/site/asciidoc/manual/filters.adoc
+++ b/src/site/asciidoc/manual/filters.adoc
@@ -397,6 +397,53 @@ appender if the Marker matches:
 </Configuration>
 ----
 
+[#NoMarkerFilter]
+== NoMarkerFilter
+
+The NoMarkerFilter checks that there is no marker included in the LogEvent. A match occurs when there is no
+marker in the Log Event.
+
+.No Marker Filter Parameters
+[cols="1m,1,3"]
+|===
+|Parameter Name |Type |Description
+
+|onMatch
+|String
+|Action to take when the filter matches. May be ACCEPT,
+DENY or NEUTRAL. The default value is NEUTRAL.
+
+|onMismatch
+|String
+|Action to take when the filter does not match. May
+be ACCEPT, DENY or NEUTRAL. The default value is DENY.
+|===
+
+A sample configuration that only allows the event to be written by the
+appender if no marker is there:
+
+[source,xml]
+----
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration status="warn" name="MyApp" packages="">
+  <Appenders>
+    <RollingFile name="RollingFile" fileName="logs/app.log"
+                 filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
+      <NoMarkerFilter onMatch="ACCEPT" onMismatch="DENY"/>
+      <PatternLayout>
+        <pattern>%d %p %c{1.} [%t] %m%n</pattern>
+      </PatternLayout>
+      <TimeBasedTriggeringPolicy />
+    </RollingFile>
+  </Appenders>
+  <Loggers>
+    <Root level="error">
+      <AppenderRef ref="RollingFile"/>
+    </Root>
+  </Loggers>
+</Configuration>
+----
+
 [#RegexFilter]
 == RegexFilter