Wie append hostname log-Datei im log4j.xml
Möchte ich anfügen, hostname und Datum, log-Datei-Namen.So log-Datei-Name sollte wie app_hostname.Datum.melden Sie.
Hinweis: Das laufen sollte in beiden linux und windows.
<appender name="applog" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${path}/app.log" />
<param name="MaxFileSize" value="1MB" />
<param name="DatePattern" value=".dd-MM-yyyy" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%d{dd-MM-yyyy HH:mm:ss}] [%-5p] %m%n"/>
</layout>
</appender>
Und zum hinzufügen von filtern auf der Basis des log-Muster, nicht wie StringMatchFilter
.Ich will Muster abgestimmt werden.
Vielen Dank im Voraus
- erwägen Sie die Verwendung
logback
oderlog4j2
. starten Sie mit logback istSiftingAppender
- spezifischer sein..Wenn möglich mit code-snippet
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies tun Sie zunächst aus Ihren java-code dann konfigurieren-log4j in Anwendung,
BEACHTEN : Griff-oder catch-Ausnahme erforderlich, während unten code ausführen.
AKTUALISIERT :
Wenn Ihre Anwendung ist eine web-Applikation,
dann benötigen Sie zum konfigurieren Eigenschaft, die wollen wir hier nach
tomcat-server
start und vor jederapplication
laufen,für das erstellen einer Klasse
ApplicationConfiguration
dieServletContextListener
- Schnittstelle implementiert, die eine hilft hier, um zuerst ausgeführt werden, bevor irgendeine Anwendung läuft.dies ebenfalls tun,
......
Stellen Sie Ihre log4j.xml Datei ebenso
bitte update web.xml Datei entsprechend,
UPDATE 2 :
Folgenden die log4j2 Dokumentation Sie tun können, Umgebungsvariable lookups, so wird in Unix-artigen Systemen sollte dies funktionieren:
Beachten Sie, dass $HOSTNAME ist nicht immer standardmäßig verfügbar, und Sie müssen, um es zu exportieren explizit in der shell, siehe dieser Beitrag.
Folgende Konfiguration wird den trick tun
Können Sie ein system definiert Eigenschaft
hostname
und ändern Sie die Konfiguration:Stellen Sie sicher, dass die system-Eigenschaft gesetzt ist, bevor log4j-Initialisierung.
Zum hinzufügen von filtern finden Sie die Antwort von Filter-Protokoll von passenden Muster - log4j
AKTUALISIERT:
Eine einfache Lösung für das schreiben von log:
Ändern von code in Ihr Programm:
Vgl. diese Antwort zu einer ähnlichen Frage, die Anfrage wäre nicht offensichtlich, um Sie zu befriedigen, auch wenn nach dieser mailing-Liste thread, dies ist ein lange gehegter Wunsch.
Verwenden eine aktuelle version von log4j, die Ende dieser Dokumentation Abschnitt scheint, Sie haben bereits die Funktion, die Sie mit Eigenschaften.
Sowieso, haben Sie immer die Lösung, es selbst zu tun mit einem spezialisierten Muster-layout, wie hier.
Schreiben Sie eigene appender die grundlegenden appenderws. Dies wird Ihnen helfen, Bearbeiten Sie die Eigenschaften in java.
Sehen Diese Antwort https://stackoverflow.com/a/1324075/1594992
Oder legen Sie Einfach die Kommandozeilen-Argumente & system-Eigenschaft wie folgt beantworten
https://stackoverflow.com/a/4953207/1594992