EMMA Coverage Report (generated Wed Jun 08 12:10:57 KST 2005)
[all classes][org.apache.mina.util]

COVERAGE SUMMARY FOR SOURCE FILE [SessionLog.java]

nameclass, %method, %block, %line, %
SessionLog.java0%   (0/1)0%   (0/6)0%   (0/120)0%   (0/23)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class SessionLog0%   (0/1)0%   (0/6)0%   (0/120)0%   (0/23)
<static initializer> 0%   (0/1)0%   (0/35)0%   (0/2)
SessionLog (): void 0%   (0/1)0%   (0/3)0%   (0/1)
getClassName (Session): String 0%   (0/1)0%   (0/15)0%   (0/3)
getLogger (Session): Logger 0%   (0/1)0%   (0/42)0%   (0/9)
log (Level, Session, String): void 0%   (0/1)0%   (0/12)0%   (0/4)
log (Level, Session, String, Throwable): void 0%   (0/1)0%   (0/13)0%   (0/4)

1package org.apache.mina.util;
2 
3import java.util.logging.Level;
4import java.util.logging.Logger;
5 
6import org.apache.mina.common.Session;
7import org.apache.mina.io.IoSession;
8import org.apache.mina.protocol.ProtocolSession;
9 
10/**
11 * Call {@link #getLogger(Session)}, {@link #log(Level,Session, String)}, and
12 * {@link #log(Level,Session, String, Throwable)} to log protocol-specific messages.
13 * <p>
14 * Set {@link #PREFIX} and {@link #LOGGER} session attributes
15 * to override prefix string, logger, and log level.
16 *
17 * @author The Apache Directory Project (dev@directory.apache.org)
18 * @author Trustin Lee (trustin@apache.org)
19 * @version $Rev: 165596 $, $Date: 2005-05-02 16:22:02 +0900 $
20 *
21 */
22public class SessionLog {
23    /**
24     * Session attribute key: prefix string
25     */
26    public static final String PREFIX = SessionLog.class.getName() + ".prefix";
27 
28    /**
29     * Session attribute key: {@link Logger}
30     */
31    public static final String LOGGER = SessionLog.class.getName() + ".logger";
32    
33    public static Logger getLogger( Session session )
34    {
35        
36        Logger log = (Logger) session.getAttribute( LOGGER );
37        if( log == null )
38        {
39            log = Logger.getLogger( getClassName( session ) );
40            String prefix = ( String ) session.getAttribute( PREFIX );
41            if( prefix == null )
42            {
43                prefix = "[" + session.getRemoteAddress() + "] ";
44                session.setAttribute( PREFIX, prefix );
45            }
46                
47            session.setAttribute( LOGGER, log );
48        }
49        
50        return log;
51    }
52    
53    private static String getClassName( Session session )
54    {
55        if( session instanceof IoSession )
56            return ( ( IoSession ) session ).getHandler().getClass().getName();
57        else
58            return ( ( ProtocolSession ) session ).getHandler().getClass().getName();
59    }
60 
61    public static void log( Level level, Session session, String message )
62    {
63        Logger log = getLogger( session );
64        if( log.isLoggable( level ) )
65        {
66            log.log( level, message );
67        }
68    }
69 
70    public static void log( Level level, Session session, String message, Throwable cause )
71    {
72        Logger log = getLogger( session );
73        if( log.isLoggable( level ) )
74        {
75            log.log( level, message, cause );
76        }
77    }
78}

[all classes][org.apache.mina.util]
EMMA 2.0.4217 (C) Vladimir Roubtsov