Class MdcInjectionFilter

  • All Implemented Interfaces:
    IoFilter

    public class MdcInjectionFilter
    extends CommonEventFilter
    This filter will inject some key IoSession properties into the Mapped Diagnostic Context (MDC)

    These properties will be set in the MDC for all logging events that are generated down the call stack, even in code that is not aware of MINA. By default, the following properties will be set for all transports:

    • "handlerClass"
    • "remoteAddress"
    • "localAddress"
    When session.getTransportMetadata().getAddressType() == InetSocketAddress.class the following properties will also be set:
    • "remoteIp"
    • "remotePort"
    • "localIp"
    • "localPort"
    User code can also add custom properties to the context, via setProperty(IoSession, String, String) If you only want the MDC to be set for the IoHandler code, it's enough to add one MdcInjectionFilter at the end of the filter chain. If you want the MDC to be set for ALL code, you should add an MdcInjectionFilter to the start of the chain and add that same MdcInjectionFilter instance after EVERY ExecutorFilter in the chain Thus it's ok to have one instance of the MdcInjectionFilter and add it multiple times to the chain but you should avoid adding multiple instances to the chain.
    Author:
    Apache MINA Project
    • Method Detail

      • fillContext

        protected void fillContext​(IoSession session,
                                   Map<String,​String> context)
        write key properties of the session to the Mapped Diagnostic Context sub-classes could override this method to map more/other attributes
        Parameters:
        session - the session to map
        context - key properties will be added to this map
      • getProperty

        public static String getProperty​(IoSession session,
                                         String key)
        Get the property associated with a given key
        Parameters:
        session - The IoSession
        key - The key we are looking at
        Returns:
        The associated property
      • setProperty

        public static void setProperty​(IoSession session,
                                       String key,
                                       String value)
        Add a property to the context for the given session This property will be added to the MDC for all subsequent events
        Parameters:
        session - The session for which you want to set a property
        key - The name of the property (should not be null)
        value - The value of the property
      • removeProperty

        public static void removeProperty​(IoSession session,
                                          String key)
        Remove a property from the context for the given session This property will be removed from the MDC for all subsequent events
        Parameters:
        session - The session for which you want to remove a property
        key - The name of the property (should not be null)