1 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 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 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 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 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 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 |