1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.mina.io.filter;
20
21 import java.util.logging.Level;
22 import java.util.logging.Logger;
23
24 import org.apache.mina.common.ByteBuffer;
25 import org.apache.mina.common.IdleStatus;
26 import org.apache.mina.io.IoFilter;
27 import org.apache.mina.io.IoSession;
28 import org.apache.mina.util.SessionLog;
29
30 /***
31 * Logs all MINA I/O events to {@link Logger}.
32 *
33 * @author The Apache Directory Project (dev@directory.apache.org)
34 * @author Trustin Lee (trustin@apache.org)
35 * @version $Rev: 210062 $, $Date: 2005-07-11 12:52:38 +0900 $
36 *
37 * @see SessionLog
38 */
39 public class IoLoggingFilter implements IoFilter
40 {
41 /***
42 * Session attribute key: prefix string
43 */
44 public static final String PREFIX = SessionLog.PREFIX;
45
46 /***
47 * Session attribute key: {@link Logger}
48 */
49 public static final String LOGGER = SessionLog.LOGGER;
50
51 private Level defaultLevel = Level.INFO;
52
53 /***
54 * Creates a new instance.
55 */
56 public IoLoggingFilter()
57 {
58 }
59
60 /***
61 * Returns the default level of log entry this filter logs.
62 */
63 public Level getDefaultLevel() {
64 return defaultLevel;
65 }
66
67 /***
68 * Sets the default level of log entry this filter logs.
69 */
70 public void setDefaultLevel(Level defaultLevel) {
71 if( defaultLevel == null )
72 {
73 defaultLevel = Level.INFO;
74 }
75 this.defaultLevel = defaultLevel;
76 }
77
78 public void sessionOpened( NextFilter nextFilter, IoSession session )
79 {
80 SessionLog.log( defaultLevel, session, "OPENED" );
81 nextFilter.sessionOpened( session );
82 }
83
84 public void sessionClosed( NextFilter nextFilter, IoSession session )
85 {
86 SessionLog.log( defaultLevel, session, "CLOSED" );
87 nextFilter.sessionClosed( session );
88 }
89
90 public void sessionIdle( NextFilter nextFilter, IoSession session, IdleStatus status )
91 {
92 SessionLog.log( defaultLevel, session, "IDLE: " + status );
93 nextFilter.sessionIdle( session, status );
94 }
95
96 public void exceptionCaught( NextFilter nextFilter, IoSession session, Throwable cause )
97 {
98 SessionLog.log( defaultLevel, session, "EXCEPTION:", cause );
99 nextFilter.exceptionCaught( session, cause );
100 }
101
102 public void dataRead( NextFilter nextFilter, IoSession session, ByteBuffer buf)
103 {
104 SessionLog.log( defaultLevel, session, "READ: " + buf.getHexDump() );
105 nextFilter.dataRead( session, buf );
106 }
107
108 public void dataWritten( NextFilter nextFilter, IoSession session, Object marker)
109 {
110 SessionLog.log( defaultLevel, session, "WRITTEN: " + marker );
111 nextFilter.dataWritten( session, marker );
112 }
113
114 public void filterWrite( NextFilter nextFilter, IoSession session, ByteBuffer buf, Object marker)
115 {
116 SessionLog.log( defaultLevel, session, "WRITE: " + marker + ", " + buf.getHexDump() );
117 nextFilter.filterWrite( session, buf, marker );
118 }
119 }