Ich habe versucht, einige HTTP 500 zu finden, die von meiner Anwendung gesendet werden. Sie erscheinen als dies in den localhost_access_log.txt
:Tomcat gibt HTTP 500 mit Ein-Byte-Antworten zurück
127.0.0.1 - - [30/Aug/2017:16:27:46 +0000] "POST /user/174 HTTP/1.1" 500 1
So habe ich zu meiner Anwendung anmelden, um alle Ausnahmen und Antworten vom Typ 5xx zu fangen. Diese Protokolle werden nie ausgefüllt. Außerdem, wie Sie sehen können, ist die Länge der Antwort ein Byte, was niemals der Fall sein sollte. Das Web-Framework, das ich verwende, Lift, wird größere Antworten als das mit einem 5xx zurückgeben.
Ich versuche, alle Fragen, wie so zu fangen:
LiftRules.onEndServicing.append {
case (req, Full(resp)) => {
resp.toResponse.code.toString match {
case internalServerError if(internalServerError.startsWith("5")) => requestLogError(req, resp.toString)
case _ =>
}
}
case _ =>
}
LiftRules.exceptionHandler.prepend {
case (runMode, req, exception) =>
requestLogError(req, Throwables.getStackTraceAsString(exception))
XhtmlResponse((<html> <body>Something unexpected happened while serving the page at {req.uri}</body> </html>), S.htmlProperties.docType, List("Content-Type" -> "text/html; charset=utf-8"), Nil, 500, S.legacyIeCompatibilityMode)
}
So wie nichts gibt es im requestLog
protokolliert Ich frage mich, ob es überhaupt ist mein Code zu schlagen.
Wie kann ich eine bessere Protokollierung in Tomcat aktivieren, um die zugrunde liegende Ursache zu sehen?
Es gibt auch nichts in catalina.out
.
Das ist ziemlich merkwürdig. Wird 'localhost_access_log.txt' von Tomcat oder einer Art Reverse Proxy wie nginx oder so generiert? –
Es ist definiert als die Log-Datei im 'org.apache.catalina.valves.AccessLogValve', also Tomcat. –
Für etwas mehr Güte, versuchen Sie 'LiftRules.early' eine Funktion, die ein' req.context.setAttribute ("startedLiftProcessing", true) '. Dann sollten Sie in der Lage sein, dieses Attribut als '% {startedLiftProcessing} r 'oder'% {startedLiftProcessing} s' in das Log einzufügen, glaube ich. Welche Tomcat-Version? –