Class LoggingFilter

java.lang.Object
org.apache.mina.core.filterchain.IoFilterAdapter
org.apache.mina.filter.logging.LoggingFilter
All Implemented Interfaces:
IoFilter

public class LoggingFilter extends IoFilterAdapter
Logs MINA protocol events. Each event can be tuned to use a different level based on the user's specific requirements. Methods are in place that allow the user to use either the get or set method for each event and pass in the IoEventType and the LogLevel. By default, all events are logged to the LogLevel.INFO level except IoFilterAdapter.exceptionCaught(IoFilter.NextFilter, IoSession, Throwable), which is logged to LogLevel.WARN.
  • Field Details

    • name

      private final String name
      The logger name
    • logger

      private final org.slf4j.Logger logger
      The logger
    • exceptionCaughtLevel

      private LogLevel exceptionCaughtLevel
      The log level for the exceptionCaught event. Default to WARN.
    • messageSentLevel

      private LogLevel messageSentLevel
      The log level for the messageSent event. Default to INFO.
    • messageReceivedLevel

      private LogLevel messageReceivedLevel
      The log level for the messageReceived event. Default to INFO.
    • sessionCreatedLevel

      private LogLevel sessionCreatedLevel
      The log level for the sessionCreated event. Default to INFO.
    • sessionOpenedLevel

      private LogLevel sessionOpenedLevel
      The log level for the sessionOpened event. Default to INFO.
    • sessionIdleLevel

      private LogLevel sessionIdleLevel
      The log level for the sessionIdle event. Default to INFO.
    • sessionClosedLevel

      private LogLevel sessionClosedLevel
      The log level for the sessionClosed event. Default to INFO.
  • Constructor Details

    • LoggingFilter

      public LoggingFilter()
      Default Constructor.
    • LoggingFilter

      public LoggingFilter(Class<?> clazz)
      Create a new NoopFilter using a class name
      Parameters:
      clazz - the cass which name will be used to create the logger
    • LoggingFilter

      public LoggingFilter(String name)
      Create a new NoopFilter using a name
      Parameters:
      name - the name used to create the logger. If null, will default to "NoopFilter"
  • Method Details

    • getName

      public String getName()
      Returns:
      The logger's name
    • log

      private void log(LogLevel eventLevel, String message, Throwable cause)
      Log if the logger and the current event log level are compatible. We log a message and an exception.
      Parameters:
      eventLevel - the event log level as requested by the user
      message - the message to log
      cause - the exception cause to log
    • log

      private void log(LogLevel eventLevel, String message, Object param)
      Log if the logger and the current event log level are compatible. We log a formated message and its parameters.
      Parameters:
      eventLevel - the event log level as requested by the user
      message - the formated message to log
      param - the parameter injected into the message
    • log

      private void log(LogLevel eventLevel, String message)
      Log if the logger and the current event log level are compatible. We log a simple message.
      Parameters:
      eventLevel - the event log level as requested by the user
      message - the message to log
    • exceptionCaught

      public void exceptionCaught(IoFilter.NextFilter nextFilter, IoSession session, Throwable cause) throws Exception
      Specified by:
      exceptionCaught in interface IoFilter
      Overrides:
      exceptionCaught in class IoFilterAdapter
      Parameters:
      nextFilter - the IoFilter.NextFilter for this filter. You can reuse this object until this filter is removed from the chain.
      session - The IoSession which has received this event
      cause - The exception that cause this event to be received
      Throws:
      Exception - If an error occurred while processing the event
    • messageReceived

      public void messageReceived(IoFilter.NextFilter nextFilter, IoSession session, Object message) throws Exception
      Specified by:
      messageReceived in interface IoFilter
      Overrides:
      messageReceived in class IoFilterAdapter
      Parameters:
      nextFilter - the IoFilter.NextFilter for this filter. You can reuse this object until this filter is removed from the chain.
      session - The IoSession which has received this event
      message - The received message
      Throws:
      Exception - If an error occurred while processing the event
    • messageSent

      public void messageSent(IoFilter.NextFilter nextFilter, IoSession session, WriteRequest writeRequest) throws Exception
      Specified by:
      messageSent in interface IoFilter
      Overrides:
      messageSent in class IoFilterAdapter
      Parameters:
      nextFilter - the IoFilter.NextFilter for this filter. You can reuse this object until this filter is removed from the chain.
      session - The IoSession which has received this event
      writeRequest - The WriteRequest that contains the sent message
      Throws:
      Exception - If an error occurred while processing the event
    • sessionCreated

      public void sessionCreated(IoFilter.NextFilter nextFilter, IoSession session) throws Exception
      Specified by:
      sessionCreated in interface IoFilter
      Overrides:
      sessionCreated in class IoFilterAdapter
      Parameters:
      nextFilter - the IoFilter.NextFilter for this filter. You can reuse this object until this filter is removed from the chain.
      session - The IoSession which has received this event
      Throws:
      Exception - If an error occurred while processing the event
    • sessionOpened

      public void sessionOpened(IoFilter.NextFilter nextFilter, IoSession session) throws Exception
      Specified by:
      sessionOpened in interface IoFilter
      Overrides:
      sessionOpened in class IoFilterAdapter
      Parameters:
      nextFilter - the IoFilter.NextFilter for this filter. You can reuse this object until this filter is removed from the chain.
      session - The IoSession which has received this event
      Throws:
      Exception - If an error occurred while processing the event
    • sessionIdle

      public void sessionIdle(IoFilter.NextFilter nextFilter, IoSession session, IdleStatus status) throws Exception
      Specified by:
      sessionIdle in interface IoFilter
      Overrides:
      sessionIdle in class IoFilterAdapter
      Parameters:
      nextFilter - the IoFilter.NextFilter for this filter. You can reuse this object until this filter is removed from the chain.
      session - The IoSession which has received this event
      status - The IdleStatus type
      Throws:
      Exception - If an error occurred while processing the event
    • sessionClosed

      public void sessionClosed(IoFilter.NextFilter nextFilter, IoSession session) throws Exception
      Specified by:
      sessionClosed in interface IoFilter
      Overrides:
      sessionClosed in class IoFilterAdapter
      Parameters:
      nextFilter - the IoFilter.NextFilter for this filter. You can reuse this object until this filter is removed from the chain.
      session - The IoSession which has received this event
      Throws:
      Exception - If an error occurred while processing the event
    • setExceptionCaughtLogLevel

      public void setExceptionCaughtLogLevel(LogLevel level)
      Set the LogLevel for the ExceptionCaught event.
      Parameters:
      level - The LogLevel to set
    • getExceptionCaughtLogLevel

      public LogLevel getExceptionCaughtLogLevel()
      Get the LogLevel for the ExceptionCaught event.
      Returns:
      The LogLevel for the ExceptionCaught eventType
    • setMessageReceivedLogLevel

      public void setMessageReceivedLogLevel(LogLevel level)
      Set the LogLevel for the MessageReceived event.
      Parameters:
      level - The LogLevel to set
    • getMessageReceivedLogLevel

      public LogLevel getMessageReceivedLogLevel()
      Get the LogLevel for the MessageReceived event.
      Returns:
      The LogLevel for the MessageReceived eventType
    • setMessageSentLogLevel

      public void setMessageSentLogLevel(LogLevel level)
      Set the LogLevel for the MessageSent event.
      Parameters:
      level - The LogLevel to set
    • getMessageSentLogLevel

      public LogLevel getMessageSentLogLevel()
      Get the LogLevel for the MessageSent event.
      Returns:
      The LogLevel for the MessageSent eventType
    • setSessionCreatedLogLevel

      public void setSessionCreatedLogLevel(LogLevel level)
      Set the LogLevel for the SessionCreated event.
      Parameters:
      level - The LogLevel to set
    • getSessionCreatedLogLevel

      public LogLevel getSessionCreatedLogLevel()
      Get the LogLevel for the SessionCreated event.
      Returns:
      The LogLevel for the SessionCreated eventType
    • setSessionOpenedLogLevel

      public void setSessionOpenedLogLevel(LogLevel level)
      Set the LogLevel for the SessionOpened event.
      Parameters:
      level - The LogLevel to set
    • getSessionOpenedLogLevel

      public LogLevel getSessionOpenedLogLevel()
      Get the LogLevel for the SessionOpened event.
      Returns:
      The LogLevel for the SessionOpened eventType
    • setSessionIdleLogLevel

      public void setSessionIdleLogLevel(LogLevel level)
      Set the LogLevel for the SessionIdle event.
      Parameters:
      level - The LogLevel to set
    • getSessionIdleLogLevel

      public LogLevel getSessionIdleLogLevel()
      Get the LogLevel for the SessionIdle event.
      Returns:
      The LogLevel for the SessionIdle eventType
    • setSessionClosedLogLevel

      public void setSessionClosedLogLevel(LogLevel level)
      Set the LogLevel for the SessionClosed event.
      Parameters:
      level - The LogLevel to set
    • getSessionClosedLogLevel

      public LogLevel getSessionClosedLogLevel()
      Get the LogLevel for the SessionClosed event.
      Returns:
      The LogLevel for the SessionClosed eventType