Author: berndf Date: Fri Oct 27 13:42:57 2006 New Revision: 468529 URL: http://svn.apache.org/viewvc?view=rev&rev=468529 Log: activate last James component make customizing logging more simple
Added: james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/adaptor/LoggingBridge.java - copied, changed from r468459, james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/adaptor/LoggerAdaptor.java james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/logging/LogWorker.java james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/logging/SystemConsoleLogWorker.java Removed: james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/adaptor/LoggerAdaptor.java Modified: james/server/sandbox/spring-integration/src/main/config/spring-config.xml Modified: james/server/sandbox/spring-integration/src/main/config/spring-config.xml URL: http://svn.apache.org/viewvc/james/server/sandbox/spring-integration/src/main/config/spring-config.xml?view=diff&rev=468529&r1=468528&r2=468529 ============================================================================== --- james/server/sandbox/spring-integration/src/main/config/spring-config.xml (original) +++ james/server/sandbox/spring-integration/src/main/config/spring-config.xml Fri Oct 27 13:42:57 2006 @@ -30,16 +30,18 @@ <bean id="serviceManager" class="org.apache.james.container.spring.adaptor.ServiceManagerBridge" /> - <bean name="logger, loggerMap" class="org.apache.james.container.spring.adaptor.LoggerAdaptor" /> + <bean name="logWorker" class="org.apache.james.container.spring.logging.SystemConsoleLogWorker" /> + + <bean name="logger, loggerMap" class="org.apache.james.container.spring.adaptor.LoggingBridge" > + <property name="logWorker" ref="logWorker" /> + </bean> <bean id="configurationProvider" class="org.apache.james.container.spring.adaptor.AvalonConfigurationFileProvider" > - <property name="configurationPath" - value="src/main/config/james-config.xml" /> + <property name="configurationPath" value="src/main/config/james-config.xml" /> </bean> <bean id="avalonContext" class="org.apache.james.container.spring.adaptor.AvalonContext" > - <property name="applicationHome" - value="data" /> + <property name="applicationHome" value="data" /> </bean> @@ -82,40 +84,31 @@ <!-- James components with dependencies to other components --> - <bean name="James" class="org.apache.james.James" /> + <bean name="James" class="org.apache.james.James" /> - <bean name="dnsserver, org.apache.james.services.DNSServer" class="org.apache.james.dnsserver.DNSServer" /> + <bean name="dnsserver, org.apache.james.services.DNSServer" class="org.apache.james.dnsserver.DNSServer" /> <bean name="matcherpackages" class="org.apache.james.transport.JamesMatcherLoader" /> <bean name="mailetpackages" class="org.apache.james.transport.JamesMailetLoader" /> - <bean name="remotemanager" class="org.apache.james.remotemanager.RemoteManager" /> - - - <bean name="pop3server" class="org.apache.james.pop3server.POP3Server" /> + <bean name="remotemanager" class="org.apache.james.remotemanager.RemoteManager" /> - <bean name="smtpserver" class="org.apache.james.smtpserver.SMTPServer" /> + <bean name="pop3server" class="org.apache.james.pop3server.POP3Server" /> - <bean name="nntpserver" class="org.apache.james.nntpserver.NNTPServer" /> + <bean name="smtpserver" class="org.apache.james.smtpserver.SMTPServer" /> + <bean name="nntpserver" class="org.apache.james.nntpserver.NNTPServer" /> - <bean name="nntp-repository" class="org.apache.james.nntpserver.repository.NNTPRepositoryImpl" /> -<!-- + <bean name="nntp-repository" class="org.apache.james.nntpserver.repository.NNTPRepositoryImpl" /> - <block name="fetchmail" class="org.apache.james.fetchmail.FetchScheduler" > - <provide name="scheduler" - role="org.apache.avalon.cornerstone.services.scheduler.TimeScheduler"/> - <provide name="James" role="org.apache.james.services.MailServer"/> - <provide name="localusersrepository" role="org.apache.james.services.UsersRepository"/> - </block> ---> + <bean name="fetchmail" class="org.apache.james.fetchmail.FetchScheduler" /> - <bean name="spoolrepository" class="org.apache.james.mailrepository.MailStoreSpoolRepository" /> + <bean name="spoolrepository" class="org.apache.james.mailrepository.MailStoreSpoolRepository" /> - <bean name="users-store" class="org.apache.james.core.AvalonUsersStore" /> + <bean name="users-store" class="org.apache.james.core.AvalonUsersStore" /> - <bean name="localusersrepository" class="org.apache.james.core.LocalUsersRepository" /> + <bean name="localusersrepository" class="org.apache.james.core.LocalUsersRepository" /> <bean name="spoolmanager" class="org.apache.james.transport.JamesSpoolManager" /> Copied: james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/adaptor/LoggingBridge.java (from r468459, james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/adaptor/LoggerAdaptor.java) URL: http://svn.apache.org/viewvc/james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/adaptor/LoggingBridge.java?view=diff&rev=468529&p1=james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/adaptor/LoggerAdaptor.java&r1=468459&p2=james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/adaptor/LoggingBridge.java&r2=468529 ============================================================================== --- james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/adaptor/LoggerAdaptor.java (original) +++ james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/adaptor/LoggingBridge.java Fri Oct 27 13:42:57 2006 @@ -20,21 +20,47 @@ import org.apache.avalon.framework.logger.Logger; import org.apache.james.container.spring.logging.LoggerToComponentMapper; +import org.apache.james.container.spring.logging.LogWorker; + +/** + * bridge to act as a Avalon logger but effectively forward to a some other logging service + */ +public class LoggingBridge implements Logger, LoggerToComponentMapper { + public static final String LEVEL_DEBUG = "debug"; + public static final String LEVEL_INFO = "info"; + public static final String LEVEL_WARN = "warn"; + public static final String LEVEL_ERROR = "error"; + public static final String LEVEL_FATAL = "fatal"; -public class LoggerAdaptor implements Logger, LoggerToComponentMapper { private boolean m_debugEnabled = true; + private LogWorker logWorker; + + public void setLogWorker(LogWorker logWorker) { + this.logWorker = logWorker; + } public Logger getComponentLogger(String beanName) { - return this; // every bean gets the same logger + return this; // every bean gets the same logger, could be more finegrained + } + + protected void forwardLogMessage(String level, String message) { + logWorker.logMessage(level, message); + } + + protected void forwardLogException(String level, String message, Throwable exception) { + logWorker.logException(level, message, exception); + } + + public org.apache.avalon.framework.logger.Logger getChildLogger(java.lang.String string) { + return this; } public void debug(java.lang.String string) { - System.out.println(string); + forwardLogMessage(LEVEL_DEBUG, string); } public void debug(java.lang.String string, java.lang.Throwable throwable) { - System.out.println(string + throwable.toString()); - throwable.printStackTrace(); + forwardLogException(LEVEL_DEBUG, string, throwable); } public boolean isDebugEnabled() { @@ -46,12 +72,11 @@ } public void info(java.lang.String string) { - System.out.println(string); + forwardLogMessage(LEVEL_INFO, string); } public void info(java.lang.String string, java.lang.Throwable throwable) { - System.out.println(string + throwable.toString()); - throwable.printStackTrace(); + forwardLogException(LEVEL_INFO, string, throwable); } public boolean isInfoEnabled() { @@ -59,12 +84,11 @@ } public void warn(java.lang.String string) { - System.out.println(string); + forwardLogMessage(LEVEL_WARN, string); } public void warn(java.lang.String string, java.lang.Throwable throwable) { - System.out.println(string + throwable.toString()); - throwable.printStackTrace(); + forwardLogException(LEVEL_WARN, string, throwable); } public boolean isWarnEnabled() { @@ -72,12 +96,11 @@ } public void error(java.lang.String string) { - System.out.println(string); + forwardLogMessage(LEVEL_ERROR, string); } public void error(java.lang.String string, java.lang.Throwable throwable) { - System.out.println(string + throwable.toString()); - throwable.printStackTrace(); + forwardLogException(LEVEL_ERROR, string, throwable); } public boolean isErrorEnabled() { @@ -85,20 +108,16 @@ } public void fatalError(java.lang.String string) { - System.out.println(string); + forwardLogMessage(LEVEL_FATAL, string); } public void fatalError(java.lang.String string, java.lang.Throwable throwable) { - System.out.println(string + throwable.toString()); - throwable.printStackTrace(); + forwardLogException(LEVEL_FATAL, string, throwable); } public boolean isFatalErrorEnabled() { return true; } - public org.apache.avalon.framework.logger.Logger getChildLogger(java.lang.String string) { - return this; - } } Added: james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/logging/LogWorker.java URL: http://svn.apache.org/viewvc/james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/logging/LogWorker.java?view=auto&rev=468529 ============================================================================== --- james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/logging/LogWorker.java (added) +++ james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/logging/LogWorker.java Fri Oct 27 13:42:57 2006 @@ -0,0 +1,30 @@ +/**************************************************************** + * 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.james.container.spring.logging; + +/** + * performs the actual logging which is getting forwarded from avalon component + */ +public interface LogWorker { + + void logMessage(String level, String message); + + void logException(String level, String message, Throwable exception); + +} Added: james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/logging/SystemConsoleLogWorker.java URL: http://svn.apache.org/viewvc/james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/logging/SystemConsoleLogWorker.java?view=auto&rev=468529 ============================================================================== --- james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/logging/SystemConsoleLogWorker.java (added) +++ james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/logging/SystemConsoleLogWorker.java Fri Oct 27 13:42:57 2006 @@ -0,0 +1,34 @@ +/**************************************************************** + * 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.james.container.spring.logging; + +/** + * logs forwareded logging messages to System console, the most simple form of a LogWorker + */ +public class SystemConsoleLogWorker implements LogWorker { + + public void logMessage(String level, String message) { + System.out.println(message); + } + + public void logException(String level, String message, Throwable exception) { + System.out.println(message + exception.toString()); + exception.printStackTrace(); + } +} --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]