2015-05-04 9 views
12

Ich verwende die Spark web framework, um eine REST-API zu entwickeln. Gibt es eine Möglichkeit, alle eingehenden Anfragen und ausgehenden Antworten automatisch zu protokollieren (Abfrageparameter, Kopfzeilen, Statuscodes usw.) oder muss ich die Protokollierung für jeden der Handler manuell hinzufügen?Spark Web Framework Logging Anforderungen und Antworten

Die Spark-Dokumentation hat nichts zu diesem Thema.

Danke.

+0

Ich möchte auch die "Best Practices" Möglichkeit, dies mit Spark zu tun wissen. Eine schnelle Strg + F "Protokollierung" auf der Spark-Dokumentationsseite zeigt nichts. –

Antwort

8

Hier war meine Problemumgehung.

private static String requestInfoToString(Request request) { 
    StringBuilder sb = new StringBuilder(); 
    sb.append(request.requestMethod()); 
    sb.append(" " + request.url()); 
    sb.append(" " + request.body()); 
    return sb.toString(); 
} 

public static void main(String[] args) { 
    // Bunch of handlers 

    before((request, response) -> { 
     log.info(requestInfoToString(request)); 
    }); 
} 
+0

Ein nützliches Snippet. Wissen Sie jedoch, wie Sie Antworten protokollieren können? Ich habe versucht, mit Antworten herumzuspielen, kein Glück, kann den Körper nicht zurückbekommen. – pfh

+0

@pfh: Sie könnten den after (...) Filter verwenden, um die Antworten zu protokollieren. –

+0

@RanilWijeyratne: Danke, es gab ein Problem mit der Spark-Version 2.3. Ein Upgrade auf die neueste Version scheint zu funktionieren. – pfh

Verwandte Themen