KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > quikj > application > communicator > admin > controller > LogSearchAction


1 /*
2  * LogSearchAction.java
3  *
4  */

5
6 package com.quikj.application.communicator.admin.controller;
7
8 import javax.servlet.http.*;
9 import org.apache.struts.action.*;
10 import java.sql.*;
11 import java.util.*;
12
13 import com.quikj.application.communicator.admin.model.*;
14 import com.quikj.server.framework.AceLogger;
15
16
17 public class LogSearchAction extends Action
18 {
19     
20     /** Creates a new instance of LogSearchAction */
21     public LogSearchAction()
22     {
23     }
24     
25     public ActionForward execute(ActionMapping mapping,
26     ActionForm form,
27     HttpServletRequest request,
28     HttpServletResponse response)
29     {
30         LogSearchForm lform = (LogSearchForm)form;
31         
32         ActionErrors errors = new ActionErrors();
33         ActionMessages messages = new ActionMessages();
34         
35         Connection c = (Connection)request.getSession().getAttribute("connection");
36         if (c == null)
37         {
38             errors.add(ActionErrors.GLOBAL_ERROR,
39             new ActionError("error.not.logged.in"));
40             saveErrors(request, errors);
41             return mapping.findForward("logon");
42         }
43         
44         AccountElement element = (AccountElement)request.getSession().getAttribute("userInfo");
45         if (element.isAdminLevel() == false)
46         {
47             errors.add(ActionErrors.GLOBAL_ERROR,
48             new ActionError("error.insufficient.privilege"));
49             saveErrors(request, errors);
50             
51             return mapping.findForward("main_menu");
52         }
53         
54         LogsTable log_tbl = new LogsTable(AdminConfig.getInstance().getDBParams().getAdminDb());
55         log_tbl.setConnection(c);
56         
57         int[] severity_levels = null;
58         if (lform.getSeverityLevels() != null)
59         {
60             int num_severities = lform.getSeverityLevels().length;
61             
62             if (num_severities > 0)
63             {
64                 severity_levels = new int[num_severities];
65                 
66                 for (int i = 0; i < num_severities; i++)
67                 {
68                     String JavaDoc level = lform.getSeverityLevels()[i].toString();
69                     
70                     if (level.equals("INFORMATIONAL") == true)
71                     {
72                         severity_levels[i] = AceLogger.INFORMATIONAL;
73                     }
74                     else if (level.equals("WARNING") == true)
75                     {
76                         severity_levels[i] = AceLogger.WARNING;
77                     }
78                     else if (level.equals("ERROR") == true)
79                     {
80                         severity_levels[i] = AceLogger.ERROR;
81                     }
82                     else if (level.equals("FATAL") == true)
83                     {
84                         severity_levels[i] = AceLogger.FATAL;
85                     }
86                     else if (level.equals("TRACE") == true)
87                     {
88                         severity_levels[i] = AceLogger.TRACE;
89                     }
90                     else
91                     {
92                         AceLogger.Instance().log(AceLogger.ERROR, AceLogger.SYSTEM_LOG,
93                         "LogSearchAction.execute()/Search/by-"
94                         + element.getName()
95                         + ": Invalid search form level = " + level);
96                         
97                         severity_levels[i] = AceLogger.NUM_MSG_TYPES;
98                     }
99                 }
100             }
101         }
102         
103         ArrayList list = log_tbl.search(new Timestamp(lform.getStartSearch().getTime()),
104         new Timestamp(lform.getEndSearch().getTime()),
105         severity_levels,
106         lform.getProcessNames(),
107         lform.getMessageText());
108         
109         if (list == null)
110         {
111             errors.add(ActionErrors.GLOBAL_ERROR,
112             new ActionError("error.db.failure"));
113             
114             AceLogger.Instance().log(AceLogger.ERROR, AceLogger.SYSTEM_LOG,
115             "LogSearchAction.execute()/Search/by-"
116             + element.getName()
117             + ": "
118             + log_tbl.getErrorMessage());
119         }
120         else
121         {
122             int num_items = list.size();
123             
124             if (num_items == 0)
125             {
126                 messages.add(ActionMessages.GLOBAL_MESSAGE,
127                 new ActionMessage("message.log.search.empty"));
128             }
129             else
130             {
131                 ArrayList resultList = new ArrayList();
132                 
133                 for (Iterator i = list.iterator(); i.hasNext(); )
134                 {
135                     LogElement db_log_element = (LogElement)i.next();
136                     
137                     LogElementDisplay display_log_element = new LogElementDisplay();
138                     
139                     display_log_element.setDatetime(db_log_element.getDate().toString());
140                     display_log_element.setHostName(db_log_element.getHostName());
141                     display_log_element.setMessage(db_log_element.getMessage());
142                     display_log_element.setProcessInstance(db_log_element.getProcessInstance());
143                     display_log_element.setProcessName(db_log_element.getProcessName());
144                     display_log_element.setSeverity(AceLogger.SEVERITY_S[db_log_element.getSeverity()]);
145                     
146                     resultList.add(display_log_element);
147                 }
148                 
149                 request.setAttribute("logResultList", resultList);
150                 
151                 // add related tasks to the navigation bar
152
RelatedTasks menu = new RelatedTasks();
153                 menu.addLink(new LinkAttribute("View logs", "display_log_search"));
154                 menu.addLink(new LinkAttribute("Delete logs", "display_log_delete"));
155                 request.setAttribute("menu", menu);
156                 
157                 // forward control to the search result screen
158
return mapping.findForward("log_search_result");
159             }
160         }
161         
162         if (errors.isEmpty() == false)
163         {
164             saveErrors(request, errors);
165         }
166         
167         if (messages.isEmpty() == false)
168         {
169             saveMessages(request, messages);
170         }
171         
172         // add related tasks to the navigation bar
173
RelatedTasks menu = new RelatedTasks();
174         menu.addLink(new LinkAttribute("View logs", "display_log_search"));
175         menu.addLink(new LinkAttribute("Delete logs", "display_log_delete"));
176         request.setAttribute("menu", menu);
177         
178         return mapping.getInputForward();
179     }
180     
181 }
182
Popular Tags