Author: norman Date: Thu Jan 26 20:12:39 2012 New Revision: 1236374 URL: http://svn.apache.org/viewvc?rev=1236374&view=rev Log: Add username to logging context if set. See PROTOCOLS-91
Added: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/logger/ContextualLogger.java (with props) Modified: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionImpl.java james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/logger/ProtocolSessionLogger.java Modified: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionImpl.java URL: http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionImpl.java?rev=1236374&r1=1236373&r2=1236374&view=diff ============================================================================== --- james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionImpl.java (original) +++ james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionImpl.java Thu Jan 26 20:12:39 2012 @@ -27,8 +27,8 @@ import java.util.Map; import org.apache.james.protocols.api.ProtocolTransport; import org.apache.james.protocols.api.handler.LineHandler; +import org.apache.james.protocols.api.logger.ContextualLogger; import org.apache.james.protocols.api.logger.Logger; -import org.apache.james.protocols.api.logger.ProtocolSessionLogger; /** * Basic implementation of {@link ProtocolSession} @@ -37,7 +37,7 @@ import org.apache.james.protocols.api.lo */ public class ProtocolSessionImpl implements ProtocolSession { - private final ProtocolSessionLogger pLog; + private final Logger pLog; private final ProtocolTransport transport; private final Map<String, Object> connectionState; private final Map<String, Object> sessionState; @@ -48,7 +48,7 @@ public class ProtocolSessionImpl impleme public ProtocolSessionImpl(Logger logger, ProtocolTransport transport, ProtocolConfiguration config) { this.transport = transport; - this.pLog = new ProtocolSessionLogger(transport.getId(), logger); + this.pLog = new ContextualLogger(this, logger); this.connectionState = new HashMap<String, Object>(); this.sessionState = new HashMap<String, Object>(); this.config = config; Added: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/logger/ContextualLogger.java URL: http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/logger/ContextualLogger.java?rev=1236374&view=auto ============================================================================== --- james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/logger/ContextualLogger.java (added) +++ james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/logger/ContextualLogger.java Thu Jan 26 20:12:39 2012 @@ -0,0 +1,172 @@ +/**************************************************************** + * 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.protocols.api.logger; + +import org.apache.james.protocols.api.ProtocolSession; + +/** + * {@link Logger} which adds context informations to the logged message. + * + */ +public class ContextualLogger implements Logger{ + + private final ProtocolSession session; + private final Logger logger; + + public ContextualLogger(ProtocolSession session, Logger logger) { + this.session = session; + this.logger = logger; + } + + private String getText(String str) { + String user = session.getUser(); + StringBuilder sb = new StringBuilder(); + sb.append("Id='").append(session.getSessionID()); + if (user != null) { + sb.append("' ").append("User='").append(user).append("'"); + } + sb.append(" ").append(str); + return sb.toString(); + } + /* + * (non-Javadoc) + * @see org.apache.james.protocols.api.logger.Logger#debug(java.lang.String) + */ + public void debug(String arg0) { + logger.debug(getText(arg0)); + } + + + /* + * (non-Javadoc) + * @see org.apache.james.protocols.api.logger.Logger#debug(java.lang.String, java.lang.Throwable) + */ + public void debug(String arg0, Throwable arg1) { + logger.debug(getText(arg0), arg1); + } + + + /* + * (non-Javadoc) + * @see org.apache.james.protocols.api.logger.Logger#error(java.lang.String) + */ + public void error(String arg0) { + logger.error(getText(arg0)); + } + + + /* + * (non-Javadoc) + * @see org.apache.james.protocols.api.logger.Logger#error(java.lang.String, java.lang.Throwable) + */ + public void error(String arg0, Throwable arg1) { + logger.error(getText(arg0), arg1); + } + + /* + * (non-Javadoc) + * @see org.apache.james.protocols.api.logger.Logger#info(java.lang.String) + */ + public void info(String arg0) { + logger.info(getText(arg0)); + } + + /* + * (non-Javadoc) + * @see org.apache.james.protocols.api.logger.Logger#info(java.lang.String, java.lang.Throwable) + */ + public void info(String arg0, Throwable arg1) { + logger.info(getText(arg0), arg1); + } + + /* + * (non-Javadoc) + * @see org.apache.james.protocols.api.logger.Logger#isDebugEnabled() + */ + public boolean isDebugEnabled() { + return logger.isDebugEnabled(); + } + + /* + * (non-Javadoc) + * @see org.apache.james.protocols.api.logger.Logger#isErrorEnabled() + */ + public boolean isErrorEnabled() { + return logger.isErrorEnabled(); + } + + /* + * (non-Javadoc) + * @see org.apache.james.protocols.api.logger.Logger#isInfoEnabled() + */ + public boolean isInfoEnabled() { + return logger.isInfoEnabled(); + } + + /* + * (non-Javadoc) + * @see org.apache.james.protocols.api.logger.Logger#isTraceEnabled() + */ + public boolean isTraceEnabled() { + return logger.isTraceEnabled(); + } + + /* + * (non-Javadoc) + * @see org.apache.james.protocols.api.logger.Logger#isWarnEnabled() + */ + public boolean isWarnEnabled() { + return logger.isWarnEnabled(); + } + + /* + * (non-Javadoc) + * @see org.apache.james.protocols.api.logger.Logger#trace(java.lang.String) + */ + public void trace(String arg0) { + logger.trace(getText(arg0)); + } + + /* + * (non-Javadoc) + * @see org.apache.james.protocols.api.logger.Logger#trace(java.lang.String, java.lang.Throwable) + */ + public void trace(String arg0, Throwable arg1) { + logger.trace(getText(arg0), arg1); + } + + /* + * (non-Javadoc) + * @see org.apache.james.protocols.api.logger.Logger#warn(java.lang.String) + */ + public void warn(String arg0) { + logger.warn(getText(arg0)); + } + + + /* + * (non-Javadoc) + * @see org.apache.james.protocols.api.logger.Logger#warn(java.lang.String, java.lang.Throwable) + */ + public void warn(String arg0, Throwable arg1) { + logger.warn(getText(arg0), arg1); + } + +} Propchange: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/logger/ContextualLogger.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Modified: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/logger/ProtocolSessionLogger.java URL: http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/logger/ProtocolSessionLogger.java?rev=1236374&r1=1236373&r2=1236374&view=diff ============================================================================== --- james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/logger/ProtocolSessionLogger.java (original) +++ james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/logger/ProtocolSessionLogger.java Thu Jan 26 20:12:39 2012 @@ -24,8 +24,10 @@ package org.apache.james.protocols.api.l * A {@link Logger} implementation which suffix every log message with the * session id Id * + * @deprecated use {@link ContextualLogger} * */ +@Deprecated public class ProtocolSessionLogger implements Logger { private final Logger logger; private final String id; --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org