1
2
3
4
5 package org.astrogrid.webapp;
6
7
8 import java.io.FileReader;
9 import java.io.IOException;
10 import java.io.PrintWriter;
11 import java.util.Date;
12 import javax.servlet.http.HttpServletRequest;
13 import javax.servlet.http.HttpServletResponse;
14 import org.astrogrid.cfg.FailbackConfig;
15 import org.astrogrid.dataservice.service.DataServer;
16 import org.astrogrid.io.Piper;
17
18 /***
19 * A servlet for returning logs
20 *
21 * @author mch
22 */
23 public class GetLog extends DefaultServlet {
24
25
26 public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
27
28 String palDebugFilename = null;
29 String whichLog = request.getParameter("Log");
30 if (whichLog == null) {
31 palDebugFilename = FailbackConfig.resolveEnvironmentVariables("${catalina.home}/logs/pal.log");
32 response.setContentType("text/plain");
33 }
34 else if (whichLog.toUpperCase().equals("CATALINA.OUT")) {
35 palDebugFilename = FailbackConfig.resolveEnvironmentVariables("${catalina.home}/logs/catalina.out");
36 response.setContentType("text/plain");
37 }
38 else if (whichLog.toUpperCase().equals("DEBUG")) {
39 palDebugFilename = FailbackConfig.resolveEnvironmentVariables("${catalina.home}/logs/pal-debug.log");
40 response.setContentType("text/plain");
41 }
42 else if (whichLog.toUpperCase().equals("WEB")) {
43 palDebugFilename = FailbackConfig.resolveEnvironmentVariables("${catalina.home}/logs/pal-web.log");
44 response.setContentType("text/html");
45 }
46 else if (whichLog.toUpperCase().equals("XML")) {
47 palDebugFilename = FailbackConfig.resolveEnvironmentVariables("${catalina.home}/logs/pal-xml.log");
48 response.setContentType("text/xml");
49 }
50 else {
51 response.setContentType("text/plain");
52 response.getWriter().println("Unknown Log value '"+whichLog+"'; use CATALINA.OUT, DEBUG, XML or WEB, or leave blank for INFO level +");
53 }
54
55 if (palDebugFilename != null) {
56 PrintWriter out = response.getWriter();
57 out.println("Debug Log for "+DataServer.getDatacenterName()+" "+new Date());
58
59 out.println("From "+palDebugFilename);
60 out.println("");
61 out.flush();
62 FileReader logReader = new FileReader(palDebugFilename);
63 Piper.bufferedPipe(logReader, out);
64 out.flush();
65 }
66 }
67
68
69 }