2016-12-01 1 views
-1

Der Titel sagt alles ...Mulesoft/Cloudhub - Wie bekomme ich Ausgabe von einer Java-Klasse, um im Protokoll angezeigt zu werden?

Ich habe eine Mulesoft-Anwendung, die in cloudhub bereitgestellt wird (aber das Problem ist das gleiche für die Ausführung lokal/on-Prem). Meine Anwendung verfügt über eine Java Invoke-Komponente, die eine Methode in meiner Java-Klasse aufruft.

Die Methode enthält Ausgabeanweisungen wie System.out und System.err. Wenn ich meine Anwendung in Anypoint Studio ausführe, wird diese Ausgabe wie erwartet in der Konsole angezeigt ... Aber es wird nicht in der Protokolldatei angezeigt (lokal oder auf Cloudhub).

Wie bekomme ich Ausgabe von meiner Java-Klasse, um in der Protokolldatei angezeigt zu werden?

Antwort

1

Dies ist zu erwarten ... System.out nicht in Protokollen gedruckt sollte nicht in prod Umgebung verwendet werden ...
Sie müssen log4j2.xml verwenden in Ihrem src/main/resource Ordner und müssen org.apache.logging.log4j in Ihrer Java-Klasse verwenden .

Ein Beispiel: -

import org.apache.logging.log4j.LogManager; 
import org.apache.logging.log4j.Logger; 

public class Log4j2Tester { 
    private static final Logger LOG = LogManager.getLogger(Log4j2Tester.class); 

    public String test(String args) { 
     LOG.error("testing ERROR level"); 

     LOG.info("testing INFO level"); 
     LOG.trace("exiting application"); 
     return "Done"; 
    } 
} 

Weitere ref: - https://logging.apache.org/log4j/2.x/manual/configuration.html
Für Cloudhub benutzerdefinierte Protokoll appender: - https://docs.mulesoft.com/runtime-manager/custom-log-appender

+0

Dank Anirban, Ich habe ganz vergessen, dass Log4j wurde für Protokollgenerierung verwendet werden. – Topher

Verwandte Themen