Comment mettre en œuvre personnalisée modèle de mise en page dans log4j2

Je suis la migration de ma demande de log4j à log4j2 API. Bien que la migration, j'ai trouvé custom patternlayouts, patternparsers et patternconverters sont utilisés. Je ne suis pas au courant de la façon de mettre en œuvre ces changements à l'aide de log4j2 plugins. Quelqu'un peut-il m'aider sur la façon de convertir cette mise en page personnalisée TestPatternLayout à log4j2. Merci beaucoup.

PFB les détails complets sur la façon personnalisée modèle de présentation est mis en œuvre à l'aide de log4j.

TestPatternLayout:

public class TestPatternLayout extends PatternLayout {

@Override 
protected PatternParser createPatternParser(String pattern) { 
    return new TestPatternParser(pattern); 
 } 
}

TestPatternParser:

public class TestPatternParser extends PatternParser {

private static final char Test_CHAR = 'e';
private static final char DATETIME_CHAR = 'd';

public TestPatternParser(String pattern) {
    super(pattern);
}

@Override
protected void finalizeConverter(char c) {
    switch (c) {
        case Test_CHAR:
            currentLiteral.setLength(0);
            addConverter(new TestPatternConverter());
            break;            
        default:
            super.finalizeConverter(c);
    }
 }
}

TestPatternConverter:

public class TestPatternConverter extends PatternConverter {

@Override
protected String convert(LoggingEvent event) {
    String testID = ObjectUtils.EMPTY_STRING;
    if(TestLogHandler.isTestLogEnabled()) {
        TestContextHolder contextHolder = TestLogHandler.getLatestContextHolderFromStack(event.getThreadName());
        if(contextHolder != null) {
            testID = contextHolder.getTestIDForThread(event.getThreadName());
        }
        else{
            testID = TestContextHolder.getTestIDForThread(event.getThreadName());
        }
    }
    return testID;
 }
}

Définition de la structure en log4j.xml:

<appender name="TEST_LOG_FILE" class="org.apache.log4j.RollingFileAppender">
...
   <layout class="com.test.it.logging.TestPatternLayout">
      <param name="ConversionPattern" value="%d %-5p [%c{1}] [TestId: %e] [%t] %m%n"/>
</layout>
...
</appender>

OriginalL'auteur sridhar | 2015-10-08