Index: src/java/org/apache/james/imapserver/ImapResponse.java
===================================================================
--- src/java/org/apache/james/imapserver/ImapResponse.java	(revision 473964)
+++ src/java/org/apache/james/imapserver/ImapResponse.java	(working copy)
@@ -24,6 +24,8 @@
 
 import javax.mail.Flags;
 
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.framework.logger.Logger;
 import org.apache.james.imapserver.commands.ImapCommand;
 import org.apache.james.imapserver.store.MessageFlags;
 import org.apache.james.util.InternetPrintWriter;
@@ -32,7 +34,7 @@
  * Class providing methods to send response messages from the server
  * to the client.
  */
-public class ImapResponse implements ImapConstants
+public class ImapResponse  extends AbstractLogEnabled implements ImapConstants
 {
     private PrintWriter writer;
     private String tag = UNTAGGED;
@@ -113,6 +115,10 @@
         message( "failed." );
         message( reason );
         end();
+        final Logger logger = getLogger();
+        if (logger.isInfoEnabled()) {
+            logger.info("COMMAND FAILED [" + responseCode + "] - " + reason);
+        }
     }
 
     /**
@@ -129,6 +135,11 @@
         message( BAD );
         message( message );
         end();
+        
+        final Logger logger = getLogger();
+        if (logger.isInfoEnabled()) {
+            logger.info("ERROR - " + message);
+        }
     }
 
     /**
@@ -140,6 +151,11 @@
         message( BAD );
         message( message );
         end();
+        
+        final Logger logger = getLogger();
+        if (logger.isInfoEnabled()) {
+            logger.info("BAD - " + message);
+        }
     }
 
     /**
Index: src/java/org/apache/james/imapserver/ImapServer.java
===================================================================
--- src/java/org/apache/james/imapserver/ImapServer.java	(revision 473964)
+++ src/java/org/apache/james/imapserver/ImapServer.java	(working copy)
@@ -26,6 +26,7 @@
 import org.apache.avalon.framework.activity.Initializable;
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.avalon.framework.logger.Logger;
 import org.apache.avalon.framework.service.ServiceException;
 import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.james.core.AbstractJamesService;
@@ -173,7 +174,11 @@
          */
         public Object newInstance() throws Exception
         {
-            return new ImapHandler();
+            final ImapHandler imapHandler = new ImapHandler();
+            final Logger logger = getLogger();
+            logger.debug("Create handler instance");
+            setupLogger(imapHandler);
+            return imapHandler;
         }
 
         /**
Index: src/java/org/apache/james/imapserver/commands/StatusCommand.java
===================================================================
--- src/java/org/apache/james/imapserver/commands/StatusCommand.java	(revision 473964)
+++ src/java/org/apache/james/imapserver/commands/StatusCommand.java	(working copy)
@@ -19,6 +19,7 @@
 
 package org.apache.james.imapserver.commands;
 
+import org.apache.avalon.framework.logger.Logger;
 import org.apache.james.imapserver.ImapRequestLineReader;
 import org.apache.james.imapserver.ImapResponse;
 import org.apache.james.imapserver.ImapSession;
@@ -55,12 +56,21 @@
         StatusDataItems statusDataItems = parser.statusDataItems( request );
         parser.endLine( request );
 
-        ImapMailboxSession mailbox = session.getSelected().getMailbox();
-
+        final Logger logger = getLogger();
+        
         StringBuffer buffer = new StringBuffer( mailboxName );
         buffer.append( SP );
         buffer.append( "(" );
+    
         try {
+            String fullMailboxName= session.buildFullName(mailboxName);
+            
+            if (logger.isDebugEnabled()) {
+                logger.debug("Status called on mailbox named " + mailboxName + " (" + fullMailboxName + ")");
+            }
+            
+            ImapMailboxSession mailbox = session.getMailboxManager().getImapMailboxSession(fullMailboxName);
+    
             if (statusDataItems.messages) {
                 buffer.append(MESSAGES);
                 buffer.append(SP);
@@ -98,6 +108,9 @@
                 buffer.append(SP);
             }
         } catch (MailboxManagerException e) {
+            if (logger.isDebugEnabled()) {
+                logger.debug("STATUS command failed: ", e);
+            }
             throw new MailboxException(e);
         }
         if ( buffer.charAt( buffer.length() - 1 ) == ' ' ) {
Index: src/java/org/apache/james/imapserver/commands/ImapCommandFactory.java
===================================================================
--- src/java/org/apache/james/imapserver/commands/ImapCommandFactory.java	(revision 473964)
+++ src/java/org/apache/james/imapserver/commands/ImapCommandFactory.java	(working copy)
@@ -25,6 +25,7 @@
 import org.apache.avalon.framework.CascadingRuntimeException;
 import org.apache.avalon.framework.logger.AbstractLogEnabled;
 import org.apache.avalon.framework.logger.LogEnabled;
+import org.apache.avalon.framework.logger.Logger;
 
 /**
  * A factory for ImapCommand instances, provided based on the command name.
@@ -103,10 +104,12 @@
 
     private ImapCommand createCommand( Class commandClass )
     {
+        final Logger logger = getLogger();
         try {
             ImapCommand cmd = ( ImapCommand ) commandClass.newInstance();
-            if ( cmd instanceof LogEnabled ) {
-                ( ( LogEnabled ) cmd ).enableLogging( getLogger() );
+            setupLogger(cmd);
+            if (logger.isDebugEnabled()) {
+                logger.debug("Created command " + commandClass);
             }
             if ( cmd instanceof UidCommand ) {
                 ( ( UidCommand) cmd ).setCommandFactory( this );
@@ -114,8 +117,11 @@
             return cmd;
         }
         catch ( Exception e ) {
+            if (logger.isWarnEnabled()) {
+                logger.warn("Create command instance failed: ", e);
+            }
             throw new CascadingRuntimeException( "Could not create command instance: " + commandClass.getName(), e );
         }
     }
-
+    
 }
Index: src/java/org/apache/james/imapserver/ImapHandler.java
===================================================================
--- src/java/org/apache/james/imapserver/ImapHandler.java	(revision 473964)
+++ src/java/org/apache/james/imapserver/ImapHandler.java	(working copy)
@@ -34,6 +34,7 @@
 import org.apache.avalon.excalibur.pool.Poolable;
 import org.apache.avalon.framework.activity.Disposable;
 import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.framework.logger.Logger;
 import org.apache.james.Constants;
 import org.apache.james.imapserver.debug.CopyInputStream;
 import org.apache.james.imapserver.debug.SplitOutputStream;
@@ -53,7 +54,7 @@
 {
 
     private String softwaretype = "JAMES IMAP4rev1 Server " + Constants.SOFTWARE_VERSION;
-    private ImapRequestHandler requestHandler = new ImapRequestHandler();
+    private final ImapRequestHandler requestHandler = new ImapRequestHandler();
     private ImapSession session;
 
     /**
@@ -104,6 +105,13 @@
     
     private boolean handlerIsUp=false;
 
+    
+    
+    public void enableLogging(Logger logger) {
+        super.enableLogging(logger);
+        setupLogger(requestHandler);
+    }
+
     /**
      * Set the configuration data for the handler.
      *
Index: src/java/org/apache/james/imapserver/ImapRequestHandler.java
===================================================================
--- src/java/org/apache/james/imapserver/ImapRequestHandler.java	(revision 473964)
+++ src/java/org/apache/james/imapserver/ImapRequestHandler.java	(working copy)
@@ -22,6 +22,8 @@
 import java.io.InputStream;
 import java.io.OutputStream;
 
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.framework.logger.Logger;
 import org.apache.james.imapserver.commands.CommandParser;
 import org.apache.james.imapserver.commands.ImapCommand;
 import org.apache.james.imapserver.commands.ImapCommandFactory;
@@ -29,12 +31,19 @@
 /**
  * @version $Revision: 109034 $
  */
-public final class ImapRequestHandler
+public final class ImapRequestHandler extends AbstractLogEnabled
 {
-    private ImapCommandFactory imapCommands = new ImapCommandFactory();
+    private final ImapCommandFactory imapCommands = new ImapCommandFactory();
     private CommandParser parser = new CommandParser();
     private static final String REQUEST_SYNTAX = "Protocol Error: Was expecting <tag SPACE command [arguments]>";
 
+    
+    
+    public void enableLogging(Logger logger) {
+        super.enableLogging(logger);
+        setupLogger(imapCommands);
+    }
+
     /**
      * This method parses POP3 commands read off the wire in handleConnection.
      * Actual processing of the command (possibly including additional back and
@@ -59,6 +68,7 @@
         }
 
         ImapResponse response = new ImapResponse( output );
+        response.enableLogging(getLogger());
 
         doProcessRequest( request, response, session );
 
@@ -84,7 +94,10 @@
             return;
         }
 
-//        System.out.println( "Got <tag>: " + tag );
+        final Logger logger = getLogger();
+        if (logger.isDebugEnabled()) {
+            logger.debug( "Got <tag>: " + tag );
+        }
         response.setTag( tag );
         try {
             commandName = parser.atom( request );
@@ -94,7 +107,10 @@
             return;
         }
 
-//        System.out.println( "Got <command>: " + commandName );
+        if (logger.isDebugEnabled()) {
+            logger.debug( "Got <command>: " + commandName);
+        };
+        
         ImapCommand command = imapCommands.getCommand( commandName );
         if ( command == null )
         {
Index: src/conf/james-server.xml
===================================================================
--- src/conf/james-server.xml	(revision 473964)
+++ src/conf/james-server.xml	(working copy)
@@ -32,7 +32,7 @@
       <category name="mailboxmanager" log-level="DEBUG">
         <log-target id-ref="mailboxmanager-target"/>
       </category>   
-      <category name="imapserver" log-level="DEBUG">
+      <category name="imapserver" log-level="INFO">
         <log-target id-ref="imapserver-target"/>
       </category>           
       <category name="mailetpackages" log-level="INFO">
