Log4j2: Wie schreiben Sie-Protokolle in separaten Dateien für jeden Benutzer?

Hier ist die Herausforderung, die ich konfrontiert:

Ich habe ein servlet-Programm. Und ich brauche zum schreiben von Protokollen für jeden Benutzer den Ordner mit dem Namen Benutzer.
So etwas wie dieses:

    //stores message to David folder
    ///root_path/David/logfile.log
    logger.error(MarkerManager.getMarker("David"), "Error happened");

    //stores message to Mark folder
    ///root_path/Mark/logfile.log                 
    logger.error(MarkerManager.getMarker("Mark"), "Something is broken");

In meinem Beispiel verwendete ich Marker. Aber ich weiß wirklich nicht, ob Marker, die geeignet für diese Aufgabe.

Im Allgemeinen meine appender Verhalten sollte, wie RollingRandomAccessFile Appen.
Ich denke mal die config für die appender muss etwas Aussehen wie dieses:

     <RollingRandomAccessFile name="rollingFile"
                 fileName="logs/{markerName ?????}/movie-db.log"
                 filePattern="logs/log-%d{yyyy-MM-dd}-%i.log.zip"
                 append="false"
                 immediateFlush="false"
                 ignoreExceptions="true">
        <PatternLayout pattern="%d{ISO8601} %level{length=5} [%thread] %logger - %msg%n"/>
        <Policies>
            <SizeBasedTriggeringPolicy size="25 MB"/>
            <TimeBasedTriggeringPolicy />
        </Policies>
        <DefaultRolloverStrategy max="10"/>
    </RollingRandomAccessFile>

Irgendwelche Ideen?

Schreibe einen Kommentar