2017-01-24 4 views
0

Wir haben einen JBoss Server, der 6 Instanzen mit dem Namen cim_ms1, cim_ms2, ... cim_ms6 hat. Im Java-Code haben wir Log4g.properties und den Protokolldateipfad ist/home/crm/logs/cim. Derzeit wird für alle 6 Instanzen die Protokolldatei zu Hause/crm/logs erstellt. Es ist jedoch erforderlich, dass die Protokolldatei für alle 6 Instanzen zu home/crm/logs/cim_ms1 für cim_ms1, home/crm/logs erstellt wird/cim_ms2 für cim_ms2 und so weiter. Die Protokolle sollten auch in ihren jeweiligen Protokolldateipfaden korrekt angezeigt werden. cim_ms1, cim_ms2 usw. sind die Servernamen. Wie soll ich diese Pfade dynamisch in log4g-Eigenschaften bekommen?Log4j Dynamische Pfadkonfiguration der Eigenschaftendatei

Antwort

1

Ich nehme an, dass Sie die gleiche log4j2.xml-Konfigurationsdatei für alle Instanzen verwenden möchten. Sie können die Eigenschaftsersetzung verwenden, um auf separate Protokolldateien zu verweisen. Hier ist ein Beispiel-Konfiguration:

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="warn"> 
    <Properties> 
    <!-- default to use if system property is not specified --> 
    <Property name="instance">default_instance</Property> 
    </Properties> 
    <Appenders> 
    <File name="MyFile" fileName="home/crm/logs/${sys:instance}/myapp.log"> 
     <PatternLayout> 
     <Pattern>%d %p %c{1.} [%t] %m%n</Pattern> 
     </PatternLayout> 
    </File> 
    </Appenders> 
    <Loggers> 
    <Root level="trace"> 
     <AppenderRef ref="MyFile"/> 
    </Root> 
    </Loggers> 
</Configuration> 

Nun, wenn Sie Systemeigenschaft -Dinstance=cim_ms1 für die erste Instanz angeben, -Dinstance=cim_ms2 für die zweite Instanz usw., wird jede Instanz in eine separate Protokolldatei protokollieren.

Anstelle der Systemeigenschaften kann die obige Eigenschaft auch in einer Datei mit dem Namen log4j2.component.properties angegeben werden, indem diese Datei in den Klassenpfad der Anwendung eingeschlossen wird.

+0

Tut mir leid, ich kenne JBos nicht genug ... es sollte in der JBoss-Dokumentation sein. Oder fügen Sie es im Klassenpfad Ihrer Webanwendung in eine Datei mit dem Namen 'log4j2.component.properties' ein. –

+0

Dank Remko für die ende Antwort lassen Sie mich wissen, wo genau diese Systemeigenschaft hat in host.xml gesetzt werden Mein Host.xml vom Typ ist: Server Details Serverdetails Bitte vorschlagen. – Aditi

Verwandte Themen