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: [email protected]
For additional commands, e-mail: [email protected]