2016-06-10 16 views
1

Ich versuche log4j zum ersten Mal zu verwenden, und ich habe es richtig konfiguriert ist, ich wollte nur wissen, wie kann ich die Details des Arguments druckt als zweite Parameter übergeben:Wie das zweite Argument in log4j anmelden

LogManager.getLogger(SomeName.class.getName()).info(message, detail); 

und meine Konfiguration appender ist:

<File name="file1" fileName="output.log"> 
    <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> 
</File> 

ich denke, es sollte eine gewisse Schalter innerhalb des Musters nach %msg, wenn ich dort das Detail protokolliert werden sollen. Aber ich bin mir nicht sicher, was oder wie.

+1

Was ist 'detail' in diesem Beispiel? Ist es nur ein Java-Objekt, über das Sie Informationen protokollieren möchten? In log4j wird die Zeichenfolge '{}' in der Nachricht durch die Argumente der Reihe nach ersetzt. Logger.info ("{} ist also {} elements long", list, list.size()) ' –

+0

Ich stimme @AndrewRueckert zu. Sie können beliebig viele Daten in log.info() oder in log.debug() drucken. Sie müssen nur {} für jede Variable hinzufügen, und Sie müssen den Wert in einen durch Kommas getrennten Wert eingeben. z.B. log.info ("Heute ist: {} Tag von {} Monat {} Jahr", Tag, Monat, Jahr); – sauumum

+0

Dank @AndrewRueckert und sauumum hat es funktioniert :) – Tester

Antwort

3

Obwohl ich eine bessere Lösung erwartet hatte, scheint dies die einzige verfügbare Lösung zu sein.

LogManager.getLogger(SomeName.class.getName()).info("Message: {}, Detail: {}", message, detail); 
1
LogManager.getLogger().info(
    "The {} is that {}, there are more {}," 
+ " not necessarily in a message + details {}.", 
    "reason", "often", "parameters", "relationship"); 
+1

Ja, hab es. Vielen Dank – Tester

Verwandte Themen