2016-09-09 5 views

답변

1

NullAppender를 플러그인으로 구현할 수 있습니다.

플러그인 구현은 다음과 같다 :

package myPlugins; 
@Plugin(name = "NullAppenderDemo", category = "Core", elementType = "appender", printObject = true) 
public classNullAppenderDemo extends AbstractAppender { 
    private static final long serialVersionUID = 1L; 
    protected NullAppenderDemo(String name, Filter filter, Layout<? extends Serializable> layout, boolean ignoreExceptions) { 
     super(name, filter, layout, ignoreExceptions); 
    } 
    @Override 
    public void append(LogEvent event) { 
     // Nothing is done here !!! 
    } 
    @PluginFactory 
    public static NullAppender createAppender( 
     @PluginAttribute("name") String name, 
     @PluginAttribute("ignoreExceptions") boolean ignoreExceptions, 
     @PluginElement("Layout") Layout<? extends Serializable> layout, 
     @PluginElement("Filters") Filter filter) { 
     if (name == null) { 
      LOGGER.error("No name provided for NullAppender"); 
      return null; 
     } 
     return new NullAppenderDemo(name, filter, layout, ignoreExceptions); 
    } 
} 

가 log4j2 구성에서 플러그인 클래스의 패키지를 지정

<?xml version="1.0" encoding="UTF-8"?> 
    <Configuration packages="myPlugins"> 

사용 펜더 (나는 특성에 XML 형식을 선호하지만, 당신이 할 수있는 에 따른 매핑, 속성을 선호하는 경우 :

<Appenders> 
     <NullAppender name="null"> 
     </NullAppender> 
     <Console name="console"> 
      <PatternLayout> 
       <pattern> 
         %d %level{length=2} (%c{1.}.%M:%L) - %m%n 
       </pattern> 
      </PatternLayout> 
     </Console> 
    </Appenders> 
    <Loggers> 
     <root level="info"> 
      <appenderRef ref="console" /> 
     </root> 
     <logger name="nullAppenderPackage" additivity="false"> 
      <appenderRef ref="null" /> 
     </logger> 
    </Loggers> 

그러나 실제로, 당신은 전혀 NullAppender없이 수준 = "해제"와 같은 효과를 가질 수 있습니다

<logger name="nullAppenderPackage" level="off"> 
</logger> 

당신은 자세한 내용 here을 찾을 수 있습니다.

+0

어떻게 이것을 .properties 파일에서 수행 할 수 있습니까? –

0

단지 이상하게 생각할 수도 있지만, 모든 피쳐를 필터링하도록 appender를 구성 할 수있을 때 NullAppender가 필요한 이유는 무엇입니까?

관련 문제