Made logging more robust for exception cases

This commit is contained in:
Ziver Koc 2017-04-19 17:12:42 +02:00
parent fe6ce790a6
commit 914d1d83df

View file

@ -146,9 +146,6 @@ public class HttpServer extends ThreadedTCPNetworkServer{
/** /**
* Internal class that handles all the requests * Internal class that handles all the requests
*
* @author Ziver
*
*/ */
protected class HttpServerThread implements ThreadedTCPNetworkServerThread{ protected class HttpServerThread implements ThreadedTCPNetworkServerThread{
private HttpPrintStream out; private HttpPrintStream out;
@ -162,11 +159,14 @@ public class HttpServer extends ThreadedTCPNetworkServer{
} }
public void run(){ public void run(){
long time = System.currentTimeMillis();
HttpHeaderParser headerParser;
HttpHeader header = null;
Map<String, Object> session = null;
try { try {
//**************************** PARSE REQUEST ********************************* //**************************** PARSE REQUEST *********************************
long time = System.currentTimeMillis(); headerParser = new HttpHeaderParser(in);
HttpHeaderParser headerParser = new HttpHeaderParser(in); header = headerParser.read();
HttpHeader header = headerParser.read();
if (header == null) { if (header == null) {
logger.finer("No header received"); logger.finer("No header received");
return; return;
@ -190,7 +190,6 @@ public class HttpServer extends ThreadedTCPNetworkServer{
//**************************** HANDLE REQUEST ********************************* //**************************** HANDLE REQUEST *********************************
// Get the client session or create one // Get the client session or create one
Map<String, Object> session;
long ttlTime = System.currentTimeMillis() + SESSION_TTL; long ttlTime = System.currentTimeMillis() + SESSION_TTL;
String sessionCookie = header.getCookie(SESSION_ID_KEY); String sessionCookie = header.getCookie(SESSION_ID_KEY);
if (sessionCookie != null && sessions.containsKey(sessionCookie) && if (sessionCookie != null && sessions.containsKey(sessionCookie) &&
@ -230,6 +229,7 @@ public class HttpServer extends ThreadedTCPNetworkServer{
} }
//******************************************************************************** //********************************************************************************
} catch (Exception e) { } catch (Exception e) {
logRequest(header, session, time);
logger.log(Level.SEVERE, "500 Internal Server Error", e); logger.log(Level.SEVERE, "500 Internal Server Error", e);
try { try {
if (!out.isHeaderSent()) if (!out.isHeaderSent())
@ -264,10 +264,10 @@ public class HttpServer extends ThreadedTCPNetworkServer{
// Debug // Debug
if(logger.isLoggable(Level.FINEST) ){ if(logger.isLoggable(Level.FINEST) ){
StringBuilder buff = new StringBuilder(); StringBuilder buff = new StringBuilder();
buff.append("Received request: ").append(header.getRequestURL()); buff.append("Received request: ").append(header==null ? null : header.getRequestURL());
buff.append(", ("); buff.append(", (");
buff.append("request: ").append(header.toStringAttributes()); buff.append("request: ").append(header==null ? null : header.toStringAttributes());
buff.append(", cookies: ").append(header.toStringCookies()); buff.append(", cookies: ").append(header==null ? null : header.toStringCookies());
buff.append(", session: ").append(session); buff.append(", session: ").append(session);
buff.append(")"); buff.append(")");
buff.append(", time: "+ StringUtil.formatTimeToString(System.currentTimeMillis() - time)); buff.append(", time: "+ StringUtil.formatTimeToString(System.currentTimeMillis() - time));
@ -275,7 +275,7 @@ public class HttpServer extends ThreadedTCPNetworkServer{
logger.finer(buff.toString()); logger.finer(buff.toString());
} else if(logger.isLoggable(Level.FINER)){ } else if(logger.isLoggable(Level.FINER)){
logger.finer( logger.finer(
"Received request: " + header.getRequestURL() "Received request: " + (header==null ? null : header.getRequestURL())
+ ", time: "+ StringUtil.formatTimeToString(System.currentTimeMillis() - time)); + ", time: "+ StringUtil.formatTimeToString(System.currentTimeMillis() - time));
} }
} }