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
Vous devez vous connecter pour publier un commentaire.
Vous avez juste besoin de créer un nouveau
Plugin
et d'étendreLogEventPatternConverter
:et mise à jour de votre configuration:
Qui devrait être tout. Veuillez voir L'extension de log4j2
pour plus de détails.
OriginalL'auteur Anton Balaniuc