2020import com .google .appengine .api .log .LogServiceFactory ;
2121import com .google .appengine .api .log .RequestLogs ;
2222
23+ import org .joda .time .DateTime ;
24+
2325import java .io .IOException ;
2426import java .io .PrintWriter ;
25- import java .util .Calendar ;
2627
2728import javax .servlet .http .HttpServlet ;
2829import javax .servlet .http .HttpServletRequest ;
3334// a time, using a Next link to cycle through to the next 5.
3435public class LogsServlet extends HttpServlet {
3536 @ Override
36- public void doGet (HttpServletRequest req , HttpServletResponse resp )
37+ public void doGet (HttpServletRequest req , HttpServletResponse resp )
3738 throws IOException {
3839
3940 resp .setContentType ("text/html" );
4041 PrintWriter writer = resp .getWriter ();
42+ writer .println ("<!DOCTYPE html>" );
43+ writer .println ("<meta charset=\" utf-8\" >" );
44+ writer .println ("<title>App Engine Logs Sample</title>" );
45+
4146 // We use this to break out of our iteration loop, limiting record
4247 // display to 5 request logs at a time.
4348 int limit = 5 ;
@@ -60,38 +65,33 @@ public void doGet(HttpServletRequest req, HttpServletResponse resp)
6065
6166 // Display a few properties of each request log.
6267 for (RequestLogs record : LogServiceFactory .getLogService ().fetch (query )) {
63- writer .println ("<br />REQUEST LOG <br />" );
64- Calendar cal = Calendar .getInstance ();
65- cal .setTimeInMillis (record .getStartTimeUsec () / 1000 );
66-
67- writer .println ("IP: " + record .getIp () + "<br />" );
68- writer .println ("Method: " + record .getMethod () + "<br />" );
69- writer .println ("Resource " + record .getResource () + "<br />" );
70- writer .println (String .format ("<br />Date: %s" , cal .getTime ().toString ()));
68+ writer .println ("<br>REQUEST LOG <br>" );
69+ DateTime reqTime = new DateTime (record .getStartTimeUsec () / 1000 );
70+ writer .println ("IP: " + record .getIp () + "<br>" );
71+ writer .println ("Method: " + record .getMethod () + "<br>" );
72+ writer .println ("Resource " + record .getResource () + "<br>" );
73+ writer .println (String .format ("<br>Date: %s" , reqTime .toString ()));
7174
7275 lastOffset = record .getOffset ();
7376
7477 // Display all the app logs for each request log.
7578 for (AppLogLine appLog : record .getAppLogLines ()) {
76- writer .println ("<br />" + "APPLICATION LOG" + "<br />" );
77- Calendar appCal = Calendar .getInstance ();
78- appCal .setTimeInMillis (appLog .getTimeUsec () / 1000 );
79- writer .println (String .format ("<br />Date: %s" ,
80- appCal .getTime ().toString ()));
81- writer .println ("<br />Level: " + appLog .getLogLevel () + "<br />" );
82- writer .println ("Message: " + appLog .getLogMessage () + "<br /> <br />" );
83- } //for each log line
79+ writer .println ("<br>" + "APPLICATION LOG" + "<br>" );
80+ DateTime appTime = new DateTime (appLog .getTimeUsec () / 1000 );
81+ writer .println (String .format ("<br>Date: %s" , appTime .toString ()));
82+ writer .println ("<br>Level: " + appLog .getLogLevel () + "<br>" );
83+ writer .println ("Message: " + appLog .getLogMessage () + "<br> <br>" );
84+ }
8485
8586 if (++count >= limit ) {
8687 break ;
8788 }
88- } // for each record
89+ }
8990
9091 // When the user clicks this link, the offset is processed in the
9192 // GET handler and used to cycle through to the next 5 request logs.
92- writer .println (String .format ("<br><a href=\" /?offset=%s\" >Next</a>" ,
93- lastOffset ));
94- } // end doGet
95- } //end class
93+ writer .println (String .format ("<br><a href=\" /?offset=%s\" >Next</a>" , lastOffset ));
94+ }
95+ }
9696// [END logs_API_example]
9797
0 commit comments