View Javadoc

1   /*
2    * $Id: GetLog.java,v 1.2 2005/03/21 18:45:55 mch Exp $
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  }