From: Mathieu Baudier Date: Thu, 15 Jul 2010 12:20:11 +0000 (+0000) Subject: Allow optimizations X-Git-Tag: argeo-slc-2.1.7~1224 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=777dd0b454c2feaece9fc5637c8902fe473463aa;hp=ffe7754e421f8ad5d3a336f54a498f67c6d72839;p=gpl%2Fargeo-slc.git Allow optimizations git-svn-id: https://svn.argeo.org/slc/trunk@3702 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/modules/agent/org.argeo.slc.agent/META-INF/MANIFEST.MF b/modules/agent/org.argeo.slc.agent/META-INF/MANIFEST.MF index 9af4c105a..4ed8eb7e8 100644 --- a/modules/agent/org.argeo.slc.agent/META-INF/MANIFEST.MF +++ b/modules/agent/org.argeo.slc.agent/META-INF/MANIFEST.MF @@ -6,4 +6,5 @@ Bundle-Name: Argeo SLC Agent Bundle-SymbolicName: org.argeo.slc.agent Import-Package: org.apache.xalan.processor, org.apache.xerces.jaxp, - org.argeo.slc.log4j + org.argeo.slc.log4j, + org.springframework.beans.factory.config;specification-version="2.5.6.SEC01" diff --git a/modules/agent/org.argeo.slc.agent/META-INF/spring/agent.xml b/modules/agent/org.argeo.slc.agent/META-INF/spring/agent.xml new file mode 100644 index 000000000..1ec088763 --- /dev/null +++ b/modules/agent/org.argeo.slc.agent/META-INF/spring/agent.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/agent/org.argeo.slc.agent/META-INF/spring/common.xml b/modules/agent/org.argeo.slc.agent/META-INF/spring/common.xml index dfb3f259a..2a3f36cfb 100644 --- a/modules/agent/org.argeo.slc.agent/META-INF/spring/common.xml +++ b/modules/agent/org.argeo.slc.agent/META-INF/spring/common.xml @@ -4,6 +4,11 @@ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd" default-lazy-init="false"> - - + + + + osgibundle:agent.properties + + \ No newline at end of file diff --git a/modules/agent/org.argeo.slc.agent/META-INF/spring/manager.xml b/modules/agent/org.argeo.slc.agent/META-INF/spring/manager.xml deleted file mode 100644 index 50e9d5aa3..000000000 --- a/modules/agent/org.argeo.slc.agent/META-INF/spring/manager.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/modules/agent/org.argeo.slc.agent/agent.properties b/modules/agent/org.argeo.slc.agent/agent.properties new file mode 100644 index 000000000..d4cea2e2c --- /dev/null +++ b/modules/agent/org.argeo.slc.agent/agent.properties @@ -0,0 +1,7 @@ + +# Disable LOG4J notification to the process +slc.agent.log4Notification.disabled=false +# Notification level +slc.agent.log4Notification.level= +# Do not log sub threads (those started by the process) +slc.agent.log4Notification.onlyExecutionThread=false diff --git a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/log4j/SlcExecutionAppender.java b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/log4j/SlcExecutionAppender.java index 4193fd925..a40c98e5a 100644 --- a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/log4j/SlcExecutionAppender.java +++ b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/log4j/SlcExecutionAppender.java @@ -34,6 +34,12 @@ import org.springframework.beans.factory.InitializingBean; public class SlcExecutionAppender extends AppenderSkeleton implements InitializingBean, DisposableBean { + private Boolean disabled = false; + + private String level = null; + + private Level log4jLevel = null; + /** Marker to prevent stack overflow */ private ThreadLocal dispatching = new ThreadLocal() { @@ -57,9 +63,30 @@ public class SlcExecutionAppender extends AppenderSkeleton implements @Override protected void append(LoggingEvent event) { + if (disabled) + return; + if (dispatching.get()) return; + if (level != null && !level.trim().equals("")) { + if (log4jLevel == null || !log4jLevel.toString().equals(level)) + try { + log4jLevel = Level.toLevel(level); + } catch (Exception e) { + System.err + .println("Log4j level could not be set for level '" + + level + "', resetting it to null."); + e.printStackTrace(); + level = null; + } + + if (log4jLevel != null + && !event.getLevel().isGreaterOrEqual(log4jLevel)) { + return; + } + } + Thread currentThread = Thread.currentThread(); if (currentThread.getThreadGroup() instanceof ProcessThreadGroup) { if (onlyExecutionThread @@ -117,4 +144,12 @@ public class SlcExecutionAppender extends AppenderSkeleton implements this.onlyExecutionThread = onlyExecutionThread; } + public void setDisabled(Boolean disabled) { + this.disabled = disabled; + } + + public void setLevel(String level) { + this.level = level; + } + }