You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by rg...@apache.org on 2010/10/29 01:39:27 UTC
svn commit: r1028544 -
/logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/filter/Filterable.java
Author: rgoers
Date: Thu Oct 28 23:39:27 2010
New Revision: 1028544
URL: http://svn.apache.org/viewvc?rev=1028544&view=rev
Log:
Slightly slower but doesn't have the multi-threading issues the prior version would have
Modified:
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/filter/Filterable.java
Modified: logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/filter/Filterable.java
URL: http://svn.apache.org/viewvc/logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/filter/Filterable.java?rev=1028544&r1=1028543&r2=1028544&view=diff
==============================================================================
--- logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/filter/Filterable.java (original)
+++ logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/filter/Filterable.java Thu Oct 28 23:39:27 2010
@@ -27,21 +27,17 @@ import java.util.Iterator;
*/
public class Filterable {
private volatile Filters filters = new Filters(null);
- private boolean hasFilters;
public synchronized void addFilter(Filter filter) {
filters = Filters.addFilter(filters, filter);
- hasFilters = filters.hasFilters();
}
public synchronized void removeFilter(Filter filter) {
filters = Filters.removeFilter(filters, filter);
- hasFilters = filters.hasFilters();
}
public synchronized void clearFilters() {
filters = new Filters(null);
- hasFilters = false;
}
public Iterator<Filter> getFilters() {
@@ -49,7 +45,7 @@ public class Filterable {
}
public boolean hasFilters() {
- return hasFilters;
+ return filters.hasFilters();
}
public int filterCount() {
@@ -57,29 +53,35 @@ public class Filterable {
}
protected void startFilters() {
- for (Filter filter : filters) {
- if ((filter instanceof Lifecycle)) {
- ((Lifecycle)filter).start();
+ Filters f = filters;
+ if (f.hasFilters()) {
+ for (Filter filter : f) {
+ if ((filter instanceof Lifecycle)) {
+ ((Lifecycle)filter).start();
+ }
}
}
}
protected void stopFilters() {
- for (Filter filter : filters) {
- if ((filter instanceof Lifecycle)) {
- ((Lifecycle)filter).stop();
+ Filters f = filters;
+ if (f.hasFilters()) {
+ for (Filter filter : f) {
+ if ((filter instanceof Lifecycle)) {
+ ((Lifecycle)filter).stop();
+ }
}
}
}
protected synchronized void setFilters(Filters newFilters) {
filters = newFilters == null ? new Filters(null) : newFilters;
- hasFilters = filters.hasFilters();
}
protected boolean isFiltered(LogEvent event) {
- if (hasFilters) {
- for (Filter filter : filters) {
+ Filters f = filters;
+ if (f.hasFilters()) {
+ for (Filter filter : f) {
if (filter.filter(event) == Filter.Result.DENY) {
return true;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org