Verwendung von Log4j2 xml Rewrite Appender zum Ändern von LogEvent, bevor es sich in einer Datei anmeldet

Ich möchte den Rewrite-Appender in meiner log4j2.xml-Datei verwenden, damit ich vor der Protokollierung die Protokolle ändern kann. Ich habe nicht viel Hilfe von Google bekommen. Gemäß log4j2-Dokumenten ist Rewrite eine Schnittstelle mit einer Rewrite-Methode und MapRewritePolicy eine Implementierungsklasse. Wenn ich diese ausführe, kann ich sehen, dass meine web3.log-Datei generiert wird, aber keine Änderungen am Protokollinhalt festgestellt werden. Ich habe den MapRewritePolicy-Quellcode gesehen und die lokale Implementierungsklasse als MapRewritePolicyImpl.java in meinem Projekt erstellt und System.out eingefügt, um zu sehen, dass der Codefluss aus der Datei log4j2.xml in diese Klasse eingeht. Ich habe meine Datei log4j2.xml so geändert, dass sie MapRewritePolicyImpl.java verwendet, aber der Codefluss wird nicht in meine MapRewritePolicyImpl.java-Klasse übernommen.

<Rewrite name="rewrite" >
            <Appender-Ref ref="web3" />
             <MapRewritePolicyImpl">
                <KeyValuePair key="creditCard" value="new12345"/>
            </MapRewritePolicyImpl> 
        </Rewrite>



    <Configuration monitorInterval="5" status="debug" strict="true">
        <Appenders>
            <RollingFile name="web3" fileName="../logs/web3.log" 
                filePattern="${sys:catalina.home}/logs/${date:yyyy-MM-dd}/web3-%d{yyyy-MM-dd}-%i.log.gz">
                <PatternLayout
                    pattern="%d{dd/MM/yyyy HH:mm:ss,SSS} [%X{cartID}] [%X{sessionId}] [%p] [%t] [%c] (%F:%L)  - %m%n" />
                <Policies>
                    <TimeBasedTriggeringPolicy interval="1"
                        modulate="true" />
                    <SizeBasedTriggeringPolicy size="10 MB" />

                </Policies>
            </RollingFile>
            <Rewrite name="rewrite" >
                <Appender-Ref ref="web3" />
                 <MapRewritePolicy">
                    <KeyValuePair key="creditCard" value="new12345"/>
                </MapRewritePolicy> 
            </Rewrite>
    </Appenders>
    <Loggers>
        <Logger name="com.virginamerica" level="info" additivity="false">
            <!-- <Appender-Ref ref="web3" /> -->
            <Appender-Ref ref="rewrite"/>
        </Logger>
    </Loggers>
</Configuration>

Antworten auf die Frage(2)

Ihre Antwort auf die Frage