You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by la...@apache.org on 2013/08/30 20:08:52 UTC

[2/3] Adding refactored logging view ui component, new feature for logging, and small fix in script README file

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0146032f/components/org.apache.stratos.logging.view.ui/src/main/resources/web/log-view/index.jsp
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.logging.view.ui/src/main/resources/web/log-view/index.jsp b/components/org.apache.stratos.logging.view.ui/src/main/resources/web/log-view/index.jsp
new file mode 100644
index 0000000..919e97e
--- /dev/null
+++ b/components/org.apache.stratos.logging.view.ui/src/main/resources/web/log-view/index.jsp
@@ -0,0 +1,646 @@
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<%@ taglib uri="http://wso2.org/projects/carbon/taglibs/carbontags.jar"
+	prefix="carbon"%>
+<%@ page import="org.apache.stratos.logging.view.ui.LogViewerClient"%>
+<%@ page import="org.apache.axis2.context.ConfigurationContext"%>
+<%@ page import="org.wso2.carbon.CarbonConstants"%>
+<%@ page import="org.wso2.carbon.logging.view.stub.types.carbon.LogInfo"%>
+<%-- <%@ page --%>
+<!-- 	import="org.wso2.carbon.logging.view.stub.types.carbon.LogEvent"%> -->
+<%@ page import="org.wso2.carbon.utils.ServerConstants"%>
+<%@ page import="org.wso2.carbon.ui.CarbonUIUtil"%>
+
+<%@ page import="org.wso2.carbon.ui.CarbonUIMessage"%>
+<%@ page import="org.wso2.carbon.logging.view.stub.types.carbon.PaginatedLogInfo"%>
+<%@ page import="org.wso2.carbon.logging.view.stub.types.carbon.PaginatedLogEvent"%>
+
+<%@ page import="org.wso2.carbon.ui.CarbonUIUtil"%>
+<%@ page import="org.wso2.carbon.ui.util.CharacterEncoder" %>
+<%@ page import="org.wso2.carbon.logging.view.stub.types.carbon.LogEvent"%>
+<%@ page import="java.util.regex.Matcher"%>
+<%@ page import="java.util.regex.Pattern"%>
+<%@ page import="java.text.SimpleDateFormat" %>
+<%@ page import="java.util.Calendar" %>
+<%@ page import="java.util.Date" %>
+<%@ page import="java.util.TimeZone" %>
+<script type="text/javascript" src="js/logviewer.js"></script>
+<script type="text/javascript" src="../admin/dialog/js/dialog.js"></script>
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>View System Logs</title>
+<script type="text/JavaScript">
+		function refresh(time) {
+			setTimeout("location.reload(true);", time);
+		}
+	</script>
+</head>
+<body  onload="JavaScript:refresh(120000);">
+<%!private boolean isArchiveFile(String fileName) {
+		String archivePattern = "[a-zA-Z]*\\.log";
+		CharSequence inputStr = fileName;
+		Pattern pattern = Pattern.compile(archivePattern);
+		Matcher matcher = pattern.matcher(inputStr);
+		return matcher.find();
+	}%>
+	<%
+		String backendServerURL = CarbonUIUtil
+				.getServerURL(config.getServletContext(), session);
+		ConfigurationContext configContext = (ConfigurationContext) config.getServletContext()
+				.getAttribute(CarbonConstants.CONFIGURATION_CONTEXT);
+		String cookie = (String) session.getAttribute(ServerConstants.ADMIN_SERVICE_COOKIE);
+		LogViewerClient logViewerClient;
+		LogEvent[] events = null;
+		String type;
+		String keyword;
+		String action;
+		boolean showLogFiles;
+		String pageNumberStr = request.getParameter("pageNumber");
+		String pageIndexNumberStr = request.getParameter("pageIndexNumber");
+		String showMaxStr = request.getParameter("showMax");
+		int pageNumber = 0;
+		int pageIndexNumber = 0;
+		int numberOfIndexPages = 0;
+		int numberOfPages = 0;
+		int noOfRows=0;
+		boolean showMax= false;
+        boolean isSuperTenant = CarbonUIUtil.isSuperTenant(request);
+        boolean isManager = false;
+        String tenantDomain = request.getParameter("tenantDomain");
+        String serviceName = request.getParameter("serviceName");
+        String serviceNames[];
+		LogInfo[] logInfo = null;
+		PaginatedLogInfo paginatedLogInfo = null;
+		PaginatedLogEvent paginatedLogEvents = null;
+		String parameter = "";
+		String indexParameter = "";
+        boolean isValidTenant = true;
+        String collapseAdv = request.getParameter("collapse");
+        boolean isCollapse = Boolean.parseBoolean(collapseAdv);
+        showMax = Boolean.parseBoolean(showMaxStr);
+        try {
+			pageNumber = Integer.parseInt(pageNumberStr);
+		} catch (NumberFormatException ignored) {
+			// page number format exception
+		}
+		try {
+			pageIndexNumber = Integer.parseInt(pageIndexNumberStr);
+		} catch (NumberFormatException ignored) {
+			// page number format exception
+		}
+		try {
+			type = CharacterEncoder.getSafeText(request.getParameter("type"));
+			type = (type == null) ? "" : type;
+            if(tenantDomain == null) {
+                tenantDomain = "";
+            }
+            if (serviceName == null) {
+                serviceName = "";
+            }
+            //tenantDomain = (tenantDomain == null) ? "" : tenantDomain;
+			keyword = CharacterEncoder.getSafeText(request.getParameter("keyword"));
+			keyword = (keyword == null) ? "" : keyword;
+			action = CharacterEncoder.getSafeText(request.getParameter("action"));
+			logViewerClient = new LogViewerClient(cookie, backendServerURL, configContext);
+            isValidTenant = logViewerClient.isValidTenant(tenantDomain);
+            if(isValidTenant) {
+                paginatedLogEvents = logViewerClient.getPaginatedLogEvents(pageNumber, type,
+                        keyword, tenantDomain, serviceName);
+                paginatedLogInfo = logViewerClient.getLocalLogFiles(pageIndexNumber, tenantDomain, serviceName);
+            }
+
+			if (paginatedLogEvents != null) {
+				noOfRows = paginatedLogEvents.getNumberOfPages() * 15;
+				events = paginatedLogEvents.getLogInfo();
+				numberOfPages = paginatedLogEvents.getNumberOfPages();
+			}
+			if (paginatedLogInfo != null) {
+				logInfo = paginatedLogInfo.getLogInfo();
+				numberOfIndexPages = paginatedLogInfo.getNumberOfPages();
+			}
+            isManager = logViewerClient.isManager();
+            if(isManager) {
+                serviceNames = logViewerClient.getSubscribedCartridgeList();
+            } else {
+                serviceNames = logViewerClient.getServiceNames();
+            }
+			showLogFiles = (logInfo != null);
+            if(isManager) {
+                if(isSuperTenant) {
+                    parameter = "type=" + type + "&keyword=" + keyword + "&serviceName=" + serviceName +
+                            "&tenantDomain=" + tenantDomain + "&collapse=" + isCollapse;
+                    indexParameter = "type=" + type + "&keyword=" + keyword+"&showMax=" + true + "&serviceName=" + serviceName +
+                            "&tenantDomain=" + tenantDomain + "&collapse=" + isCollapse;
+                } else {
+                    parameter = "type=" + type + "&keyword=" + keyword + "&serviceName=" + serviceName +
+                            "&collapse=" + isCollapse;
+                    indexParameter = "type=" + type + "&keyword=" + keyword+"&showMax=" + true + "&serviceName=" + serviceName +
+                             "&collapse=" + isCollapse;
+                }
+            } else {
+                parameter = "type=" + type + "&keyword=" + keyword;
+                indexParameter = "type=" + type + "&keyword=" + keyword+"&showMax=" + true;
+            }
+
+		} catch (Exception e) {
+			CarbonUIMessage.sendCarbonUIMessage(e.getMessage(), CarbonUIMessage.ERROR, request,
+					e);
+	%>
+	<script type="text/javascript">
+		location.href = "../admin/error.jsp";
+	</script>
+	<%
+		return;
+		}
+	%>
+	<fmt:bundle basename="org.apache.stratos.logging.view.ui.i18n.Resources">
+
+		<carbon:breadcrumb label="system.logs"
+			resourceBundle="org.wso2.carbon.logging.ui.i18n.Resources"
+			topPage="true" request="<%=request%>" />
+		<div id="middle">
+			<h2>
+				<fmt:message key="system.logs" />
+			</h2>
+			<div id="workArea">
+
+            <%
+                if (isManager) {
+            %>
+
+    <table border="0" class="styledLeft">
+        <tbody>
+        <tr>
+
+            <%
+            if(isCollapse) {
+            %>
+            <td class="middle-header" colspan="4"><a
+                    class="icon-link"
+                    style="background-image: url(images/minus.gif);"
+                    href="javascript:showQueryPropertiesSearch()"
+                    id="propertySymbolMaxSearch"></a> <fmt:message
+                    key="adv.search" /></td>
+        </tr>
+        <tr id="propertyTableSearch" style= "">
+
+                   <%
+                       } else {
+                   %>
+            <td class="middle-header" colspan="4"><a
+                    class="icon-link"
+                    style="background-image: url(images/plus.gif);"
+                    href="javascript:showQueryPropertiesSearch()"
+                    id="propertySymbolMaxSearch"></a> <fmt:message
+                    key="adv.search" /></td>
+        </tr>
+        <tr id="propertyTableSearch" style= "display: none">
+            <%
+                }
+            %>
+
+
+
+            <td>
+            <table class="normal">
+                <td style="padding-right: 2px !important;"><nobr>
+                                    <fmt:message key="service.name" />
+                    </nobr>
+                    </td>
+                    <td style="padding-right: 0px !important;"><select
+                            name="serviceName" id="serviceName" >
+                        <%
+                            for (String name : serviceNames) {
+                        %>
+                        <%
+                            if (name.equals(serviceName)) {
+                        %>
+                        <option selected="selected" value="<%=name%>">
+                            <%=name%>
+                        </option>
+                        <%
+                        } else {
+                        %>
+                        <option value="<%=name%>">
+                            <%=name%>
+                        </option>
+                        <%
+                            }
+                        %>
+                        <%
+                            }
+                        %>
+
+                    </select></td>
+                    <%
+                        if(isSuperTenant) {
+                        %>
+                    <td style="padding-right: 2px !important;">
+                        <nobr>
+                            <fmt:message key="tenant.domain" />
+                        </nobr>
+                    </td>
+                    <td style="padding-right: 2px !important;"><input
+                            value="<%=tenantDomain%>" id="tenantDomain"
+                            name="tenantDomain" size="20" type="text"></td>
+                    <td><input type="hidden" id="tenantDomain"
+                               name="tenantDomain" value="<%=tenantDomain%>" />
+                    </td>
+                    <%
+                        }
+                    %>
+
+
+            </table>
+
+        </td>
+        </tr>
+
+        </tbody>
+    </table>
+            <%
+                } else {
+            %>
+
+            <input type="hidden" id="serviceName" name="serviceName"
+                   value="<%=serviceName%>" />
+
+            <%
+                }
+
+				if (noOfRows > 40000) {
+			%>
+			<br/>
+			<font color="red">Maximum log limit exceeded!!!. <br/>
+			
+			We only list 40 000 logs through the log viewer(your latest logs will be omitted in the log display), Please download the daily archived logs, for the full log report.
+			</font>	<br/>
+			<%
+				}
+			%>
+	     	<br/>
+		      <table border="0" class="styledLeft">
+                        <tbody>
+                        <tr>
+                            <td>
+                            <table class="normal">
+                            <tr>
+                                <td style="padding-right: 2px !important;">
+                                    <nobr><fmt:message key="log.level"/></nobr>
+                                </td>
+                            <td><select class="log-select" id="logLevelID" return false>
+                                <%
+                                	String[] logLevels = logViewerClient.getLogLevels();
+                                		if (keyword != null && !keyword.equals("")) {
+                                			type = "Custom";
+                                %>
+
+                                <option value="<%=type%>" selected="true"><%=type%></option>
+
+                                <%
+                                	}
+                                		for (String logLevel : logLevels) {
+                                			if (logLevel.equals(type)) {
+                                %>
+
+                                <option value="<%=logLevel%>" selected="true"><%=logLevel%></option>
+
+                                <%
+                                	} else {
+                                %>
+
+                                <option value="<%=logLevel%>"><%=logLevel%></option>
+
+                                <%
+                                	}
+                                		}
+                                %>
+                            </select></td>
+                                <td style="padding-right: 2px !important;"><nobr>
+                                    <fmt:message key="search.logs" />
+                                </nobr>
+                                </td>
+                                <%
+                                    if(isManager && isSuperTenant) {
+                                %>
+                                <td style="padding-right: 2px !important;"><input onkeypress="submitenter(event)"
+                                        value="<%=keyword%>" id="logkeyword"
+                                        size="20" type="text"></td>
+                                <td style="padding-right: 2px !important;">
+                                    <a
+                                            class="icon-link"
+                                            style="background-image: url(images/search.gif);"
+                                            href="javascript:searchLogs()">
+                                            </a>
+                                </td>
+                                <td><input type="hidden" id="keyWord"
+                                           name="keyword" value="<%=keyword%>" />
+
+                                </td>
+                                <%
+                                    } else  if(isManager && !isSuperTenant) {
+
+                                %>
+                                <td style="padding-right: 2px !important;"><input onkeypress="submitenterNormalManager(event)"
+                                                                                  value="<%=keyword%>" id="logkeyword"
+                                                                                  size="20" type="text"></td>
+                                <td style="padding-right: 2px !important;">
+                                    <a
+                                            class="icon-link"
+                                            style="background-image: url(images/search.gif);"
+                                            href="javascript:searchNormalManager()"></a>
+                                </td>
+                                <td><input type="hidden" id="keyWord"
+                                           name="keyword" value="<%=keyword%>" />
+
+                                </td>
+                                <%
+                                    } else if(!isManager) {
+                                        %>
+                                <td style="padding-right: 2px !important;"><input onkeypress="submitenterNormal(event)"
+                                                                                  value="<%=keyword%>" id="logkeyword"
+                                                                                  size="20" type="text"></td>
+                                <td style="padding-right: 2px !important;">
+                                    <a
+                                            class="icon-link"
+                                            style="background-image: url(images/search.gif);"
+                                            href="javascript:searchNormal()"
+                                            ></a>
+                                </td>
+                                <td><input type="hidden" id="keyWord"
+                                           name="keyword" value="<%=keyword%>" />
+
+                                </td>
+                                <td style="width: 37%;"></td>
+                                <td style="padding-right: 2px !important;"><nobr>
+                                    <fmt:message key="current.time" />
+                                </nobr>
+                                </td>
+                                <%
+                                    SimpleDateFormat dateFormat = new SimpleDateFormat("Z");
+                                    String date = dateFormat.format(System.currentTimeMillis());
+                                %>
+                                <td>
+                                    <%= "GMT " + date%>
+                                </td>
+                                <%
+
+                                    }
+                                %>
+
+                            </tr>
+                            
+                        </table>
+                        </td>
+                        </tr>
+                        </tbody>
+                    </table>
+
+
+                   <br/>
+                  
+			<table border="1" class="styledLeft">
+		
+				<tbody>
+
+					<tr>
+						<td class="formRow">
+
+							<table  class="styledLeft">
+							<thead>
+									<tr>
+										<th><b><fmt:message key="log.type" />
+										</b>
+										</th>
+										<th><b><fmt:message key="date" />
+										</b>
+										</th>
+										<th colspan="2"><b><fmt:message key="log.message" />
+										</b>
+										</th>
+									</tr>
+								</thead>
+							<%
+                                if(!isValidTenant) { %>
+                                <fmt:message key="invalid.tenant" />
+
+                                <%} else {
+
+
+								if (events == null || events.length == 0 || events[0] == null) {
+							%>
+								 <fmt:message key="no.logs" /> 
+							<%
+ 								} else {
+ 										int index = 0;
+ 										for (LogEvent logMessage : events) {
+ 											index++;
+ 											if (index % 2 != 0) {
+ 							%>
+								<tr>
+									<%
+										} else {
+									%>
+								
+								<tr bgcolor="#eeeffb">
+									<%
+										}
+									%>
+								   <td border-bottom="gray" width="2%"><img
+										style="margin-right: 10px;"
+										src="<%=logViewerClient.getImageName(logMessage.getPriority().trim())%>">
+									</td>
+									<td><nobr><%=logMessage.getLogTime()%></nobr></td>
+									<td><%=CharacterEncoder.getSafeText(logMessage.getMessage())%></td>
+										<%
+											String imgId = "traceSymbolMax" + index;
+										%>
+									<td><a
+											class="icon-link"
+											style="background-image: url(images/plus.gif);"
+											href="javascript:showTrace(<%=index%>)"
+											id="<%=imgId%>"></a> <fmt:message
+												key="view.stack.trace" /></td>
+								</tr>
+								
+							<%
+																String id = "traceTable" + index;
+																			if (index % 2 != 0) {
+															%>
+									<tr id="<%=id%>" style="display: none" >
+									<%
+										} else {
+									%>
+								
+									<tr id="<%=id%>" style="display: none" bgcolor="#eeeffb">
+									<%
+										}
+									%>
+								
+									<td colspan="4" width="100%">TID[<%=logMessage.getTenantId()%>] [<%=logMessage.getServerName()%>] [<%=logMessage.getLogTime()%>] <%=logMessage.getPriority().trim()%> {<%=logMessage.getLogger()%>} - <%=CharacterEncoder.getSafeText(logMessage.getMessage())%> 
+										<%=logMessage.getStacktrace()%><br/>
+									</td>
+									</tr>
+							<%
+								}
+									}
+                                }
+							%>
+					
+							</table>
+							   <carbon:paginator pageNumber="<%=pageNumber%>" numberOfPages="<%=numberOfPages%>"
+                      page="index.jsp" pageNumberParameterName="pageNumber"
+                      prevKey="prev" nextKey="next"
+                      parameters="<%= parameter%>"/>
+					</tr>
+					
+				
+				<%
+														if (showLogFiles) {
+                %>
+					<tr>
+                        <%
+                            if(showMax) {
+                        %>
+										<td class="middle-header" colspan="2"><a
+											class="icon-link"
+											style="background-image: url(images/minus.gif);"
+											href="javascript:showQueryProperties()"
+											id="propertySymbolMax"></a> <fmt:message
+												key="archived.logs" /></td>
+                        <%
+                            } else {
+
+                        %>
+                        <td class="middle-header" colspan="2"><a
+                                class="icon-link"
+                                style="background-image: url(images/plus.gif);"
+                                href="javascript:showQueryProperties()"
+                                id="propertySymbolMax"></a> <fmt:message
+                                key="archived.logs" /></td>
+                        <%
+                            }
+                        %>
+									</tr>
+									    <tr id="propertyTable" style="<%=(showMax) ? "" : "display:none"%>">
+								
+								
+										<td>
+							
+					
+						           
+			<table border="1" class="styledLeft">
+		
+				<tbody>
+
+					<tr>
+						<td class="formRow">
+							<table class="styledLeft">
+								<thead>
+									<tr>
+										<th><b><fmt:message key="file.name" /> </b></th>
+										<th><b><fmt:message key="date" /> </b></th>
+										<th><b><fmt:message key="file.size" /> </b></th>
+										<th><b><fmt:message key="action" /> </b></th>
+									</tr>
+								</thead>
+								<%
+									int index = -1;
+											for (LogInfo logMessage : logInfo) {
+												++index;
+												if (index % 2 != 0) {
+								%>
+								<tr>
+									<%
+										} else {
+									%>
+								
+								<tr bgcolor="#eeeffb">
+									<%
+										}
+													if (logMessage.getLogName().trim().equalsIgnoreCase("NO_LOG_FILES")) {
+									%>
+
+									<td colspan="4"><fmt:message key="no.logs" /></td>
+									<%
+										} else {
+														String logFile = logMessage.getLogName();
+														String logDate = logMessage.getLogDate();
+														String logSize = logMessage.getFileSize();
+									%>
+
+									<td><%=logFile%></td>
+									<td><%=logDate%></td>
+									<td><%=logSize%></td>
+									<td>
+									      <%
+									      	if (isArchiveFile(logFile)) {
+									      %>
+									    <a class="icon-link"
+										style="background-image: url(images/download.gif);"
+										onclick="startDownload()"
+										href="downloadgz-ajaxprocessor.jsp?logFile=<%=logFile%>&tenantDomain=<%=tenantDomain%>&serviceName=<%=serviceName%>"><fmt:message
+												key="download" /> </a>
+									       <%
+									       	} else {
+									       %>
+										<a class="icon-link"
+										style="background-image: url(images/download.gif);"
+										onclick="startDownload()"
+										href="download-ajaxprocessor.jsp?logFile=<%=logFile%>&tenantDomain=<%=tenantDomain%>&serviceName=<%=serviceName%>"><fmt:message
+												key="download" /> </a>
+										   <%
+										   	}
+										   %>
+									</td>
+
+									<%
+										}
+									%>
+
+								</tr>
+
+								<%
+									}
+								%>
+							</table>
+							  <carbon:paginator pageNumber="<%=pageIndexNumber%>" numberOfPages="<%=numberOfIndexPages%>"
+                      page="index.jsp" pageNumberParameterName="pageIndexNumber"
+                      prevKey="prev" nextKey="next"
+                      parameters="<%=indexParameter%>"/>
+						</td>
+					</tr>
+										
+									</tbody></table></td></tr>
+										
+					<%
+																}
+															%>
+			</tbody></table>
+			</div>
+		</div>
+	</fmt:bundle>
+</body>
+</html>
+

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0146032f/components/org.apache.stratos.logging.view.ui/src/main/resources/web/log-view/index_old.jsp
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.logging.view.ui/src/main/resources/web/log-view/index_old.jsp b/components/org.apache.stratos.logging.view.ui/src/main/resources/web/log-view/index_old.jsp
new file mode 100755
index 0000000..d854cf1
--- /dev/null
+++ b/components/org.apache.stratos.logging.view.ui/src/main/resources/web/log-view/index_old.jsp
@@ -0,0 +1,200 @@
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
+<%@ taglib uri="http://wso2.org/projects/carbon/taglibs/carbontags.jar" prefix="carbon" %>
+<%@ page import="org.apache.stratos.logging.view.ui.LogViewerClient" %>
+<%@ page import="org.apache.axis2.context.ConfigurationContext" %>
+<%@ page import="org.wso2.carbon.CarbonConstants" %>
+<%@ page import="org.wso2.carbon.logging.view.ui.LogViewerStub.LogMessage" %>
+<%@ page import="org.wso2.carbon.utils.ServerConstants" %>
+<%@ page import="org.wso2.carbon.ui.CarbonUIUtil" %>
+<%@ page import="org.wso2.carbon.ui.CarbonUIMessage" %>
+<script type="text/javascript" src="js/logviewer.js"></script>
+<script type="text/javascript" src="../admin/dialog/js/dialog.js"></script>
+
+
+<%
+    String backendServerURL = CarbonUIUtil.getServerURL(config.getServletContext(), session);
+    ConfigurationContext configContext =
+            (ConfigurationContext) config.getServletContext().getAttribute(CarbonConstants.CONFIGURATION_CONTEXT);
+
+    String cookie = (String) session.getAttribute(ServerConstants.ADMIN_SERVICE_COOKIE);
+    LogViewerClient logViewerClient;
+    String type;
+    String keyword;
+    String action;
+    LogMessage[] logMessages;
+    try {
+        logViewerClient = new LogViewerClient(cookie, backendServerURL, configContext);
+
+        type = request.getParameter("type");
+        keyword = request.getParameter("keyword");
+        action = request.getParameter("action");
+        if (action != null && action.equals("clear-logs")) {
+            logViewerClient.cleaLogs();
+        }
+        logMessages = logViewerClient.getLogs(type, keyword);
+
+    } catch (Exception e) {
+        CarbonUIMessage.sendCarbonUIMessage(e.getMessage(), CarbonUIMessage.ERROR, request, e);
+%>
+        <script type="text/javascript">
+               location.href = "../admin/error.jsp";
+        </script>
+<%
+        return;
+    }
+%>
+
+<fmt:bundle basename="org.apache.stratos.logging.view.ui.i18n.Resources">
+<carbon:breadcrumb label="system.logs"
+		resourceBundle="org.wso2.carbon.logging.ui.i18n.Resources"
+		topPage="true" request="<%=request%>" />
+    <div id="middle">
+        <h2><fmt:message key="system.logs"/></h2>
+
+        <div id="workArea">
+           
+                    <table border="0" class="styledLeft">
+                        <tbody>
+                        <tr>
+                            <td>
+                            <table class="normal">
+                            <tr>
+                            <td><fmt:message key="view"/></td>
+                            <td><select class="log-select" id="logLevelID"
+                                        onchange="javascript:viewSingleLogLevel(); return false;">
+                                <%
+                                    String[] logLevels = logViewerClient.getLogLevels();
+                                    if(keyword != null){
+                                        type = "Custom";
+                                %>
+
+                                <option value="<%=type%>" selected="true"><%=type%></option>
+
+                                <%
+                                    }
+                                    for (String logLevel : logLevels) {
+                                        if (logLevel.equals(type)) {
+                                %>
+
+                                <option value="<%=logLevel%>" selected="true"><%=logLevel%></option>
+
+                                <%
+                                } else {
+                                %>
+
+                                <option value="<%=logLevel%>"><%=logLevel%></option>
+
+                                <% }
+                                }
+                                %>
+                            </select></td>
+                            <td style="width: 100%;"></td>
+                            <td>
+                                <nobr><fmt:message key="search.logs"/></nobr>
+                            </td>
+                                <td style="padding-right: 2px !important;">
+                                    <input onkeypress="submitenter(event)" value="" class="log-select"
+                                        size="40" id="logkeyword" type="text"></td>
+                                <td style="padding-left: 0px !important;"><input type="button"
+                                                                                 value="Search"
+                                                                                 onclick="javascript:searchLog(); return false;"
+                                                                                 class="button">
+                                </td>
+                            </tr>
+                        </table>
+                        </td>
+                        </tr>
+                        </tbody>
+                    </table>
+
+
+                   <br/>
+                    <table border="1" class="styledLeft">
+                        <tbody>
+                         <tr>
+                            <td class="formRow">
+                            <table class="styledLeft">
+
+
+                        <%
+                                int index = -1;
+                                for (LogMessage logMessage : logMessages) {
+                                    ++index;
+                                    if (index % 2 != 0) {
+
+                        %>
+                        <tr>
+                                    <%
+
+                        } else {
+
+                %>
+                        <tr bgcolor="#eeeffb">
+                            <%
+                                }
+
+                                String logLevel = logMessage.getType();
+                                if (logLevel == null || logLevel.equals("")) {
+                            %>
+                                <td border-bottom="gray" width="2%"></td>
+                            <%
+                            } else {
+                            %>
+                                <td border-bottom="gray" width="2%">
+                                    <img style="margin-right: 10px;"
+                                                              src="<%=logViewerClient.getImageName(logMessage.getType())%>">
+                            </td>
+                            <%
+                                }
+                            %>
+                            <td>
+                                <%
+                                    if(logMessage.getLogMessage().equalsIgnoreCase("NO_LOGS")) {
+                                %>
+                                        <fmt:message key="no.logs"/>
+                                <%
+                                    } else {
+                                %>
+                                        <%=logMessage.getLogMessage()%>
+                                <% } %>
+                            </td>
+                        </tr>
+
+                        <%
+                            }
+                        %>
+                         </table>
+                        </td>
+                        </tr>
+
+                    <tr>
+                     <td class="buttonRow">
+                            <input onclick="javascript:clearLogEntries('<fmt:message key="clear.all.log.message"/>?');return false;"
+                           value="<fmt:message key="clear.all"/>" class="button"
+                           name="clearLogs" type="button">
+                     </td>
+                    </tr>
+
+                        </tbody>
+                    </table>
+                </div>
+    </div>
+</fmt:bundle>

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0146032f/components/org.apache.stratos.logging.view.ui/src/main/resources/web/log-view/js/logviewer.js
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.logging.view.ui/src/main/resources/web/log-view/js/logviewer.js b/components/org.apache.stratos.logging.view.ui/src/main/resources/web/log-view/js/logviewer.js
new file mode 100644
index 0000000..73bf9da
--- /dev/null
+++ b/components/org.apache.stratos.logging.view.ui/src/main/resources/web/log-view/js/logviewer.js
@@ -0,0 +1,940 @@
+/**
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+
+ *  http://www.apache.org/licenses/LICENSE-2.0
+
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+/*
+log.js contains scripts need to handle log information.
+*/
+function viewSingleLogLevels() {
+	  var loglevel = document.getElementById("logLevelID");
+	    var loglevel_index = null;
+	    var loglevel_value = null;
+	    if (loglevel != null)
+	    {
+	        loglevel_index = loglevel.selectedIndex;
+	        if (loglevel_index != null) {
+	            loglevel_value = loglevel.options[loglevel_index].value;
+	        }
+	    }
+	    if (loglevel_value != null && loglevel_value != "") {
+	        location.href = "index.jsp?type=" + loglevel_value;
+	    } else {
+	        return;
+	    }
+}
+
+function viewApplicationLogs() {
+	  var loglevel = document.getElementById("logLevelID");
+	  var appName = document.getElementById("appName");
+	    var loglevel_index = null;
+	    var loglevel_value = null;
+	    var appName_index = null;
+	    var appName_value = null;
+	    if (loglevel != null)
+	    {
+	        loglevel_index = loglevel.selectedIndex;
+	        if (loglevel_index != null) {
+	            loglevel_value = loglevel.options[loglevel_index].value;
+	        }
+	    }
+	    
+	    if (appName != null)
+	    {
+	    	appName_index = appName.selectedIndex;
+	        if (appName_index != null) {
+	        	appName_value = appName.options[appName_index].value;
+	        }
+	    }
+	    if (loglevel_value == "Custom") {
+			loglevel_value = "ALL";
+		}
+	    if (loglevel_value != null && loglevel_value != "") {
+	        location.href = "application_log_viewer.jsp?type=" + loglevel_value +"&appName="+appName_value;
+	    } else if (appName_value != null && appName_value != "") {
+	    	  location.href = "application_log_viewer.jsp?type=" + loglevel_value +"&appName="+appName_value;
+	    } else {
+	    	return;
+	    }
+}
+
+function viewSingleLogLevel() {
+    var loglevel = document.getElementById("logLevelID");
+	var tenantDomain = document.getElementById("tenantDomain").value;
+	var serviceName = document.getElementById("serviceName").value;
+	var logFile = document.getElementById("logFile").value;
+    var loglevel_index = null;
+    var loglevel_value = null;
+    if (loglevel != null)
+    {
+        loglevel_index = loglevel.selectedIndex;
+        if (loglevel_index != null) {
+            loglevel_value = loglevel.options[loglevel_index].value;
+        }
+    }
+    if (loglevel_value != null && loglevel_value != "") {
+        location.href = "syslog_index.jsp?type=" + loglevel_value+"&logFile="+logFile+"&tenantDomain="+tenantDomain+"&serviceName="+serviceName;
+    } else {
+        return;
+    }
+
+}
+
+function getTenantSpecificIndex () {
+    var loglevel = document.getElementById("logLevelID");
+    var loglevel_index = null;
+    var loglevel_value = null;
+    var tenantDomain = document.getElementById("tenantDomain").value;
+    var serviceName = document.getElementById("serviceName");
+    var servicelevel_idex = null;
+    var service_value = null;
+    if (loglevel != null)
+    {
+        loglevel_index = loglevel.selectedIndex;
+        if (loglevel_index != null) {
+            loglevel_value = loglevel.options[loglevel_index].value;
+        }
+        if (loglevel_value == "Custom") {
+            loglevel_value = "ALL";
+        }
+    }
+    if(serviceName !=  null)
+    {
+        servicelevel_idex = serviceName.selectedIndex;
+        if(servicelevel_idex != null) {
+            service_value = serviceName.options[servicelevel_idex].value;
+        }
+    }
+    var keyword = document.getElementById("logkeyword");
+    if (keyword != null && keyword != undefined && keyword.value != null && keyword.value != undefined) {
+        if (keyword.value == "") {
+            if(serviceName != null) {
+                location.href = "index.jsp?type=" + loglevel_value + "&tenantDomain=" + tenantDomain;
+            } else {
+                location.href = "index.jsp?type=" + loglevel_value + "&tenantDomain=" + tenantDomain + "&serviceName="+serviceName;
+            }
+        } else {
+            if(serviceName != null) {
+                location.href = "index.jsp?type=" + loglevel_value + "&tenantDomain="+
+                    tenantDomain+"&serviceName="+serviceName+"&keyword=" + keyword.value;
+            } else {
+                location.href = "index.jsp?type=" + loglevel_value + "&tenantDomain="+
+                    tenantDomain +"&keyword=" + keyword.value;
+            }
+        }
+    } else {
+        return;
+    }
+
+}
+
+function getTenantApplicationSpecificIndex() {
+    var loglevel = document.getElementById("logLevelID");
+    var appName = document.getElementById("appName");
+    var loglevel_index = null;
+    var loglevel_value = null;
+    var appName_index = null;
+    var appName_value = null;
+    var servicelevel_idex = null;
+    var service_value = null;
+    var tenantDomain = document.getElementById("tenantDomain");
+    var serviceName = document.getElementById("serviceName");
+    if (loglevel != null)
+    {
+        loglevel_index = loglevel.selectedIndex;
+        if (loglevel_index != null) {
+            loglevel_value = loglevel.options[loglevel_index].value;
+        }
+    }
+
+    if (appName != null)
+    {
+        appName_index = appName.selectedIndex;
+        if (appName_index != null) {
+            appName_value = appName.options[appName_index].value;
+        }
+    }
+
+    if(serviceName !=  null)
+    {
+        servicelevel_idex = serviceName.selectedIndex;
+        if(servicelevel_idex != null) {
+            service_value = serviceName.options[servicelevel_idex].value;
+        }
+    }
+
+    if (loglevel_value == "Custom") {
+        loglevel_value = "ALL";
+    }
+    var keyword = document.getElementById("logkeyword");
+    if (keyword != null && keyword != undefined ) {
+        if(keyword.value == "") {
+            if(serviceName != null) {
+                location.href = "application_log_viewer.jsp?type=" + loglevel_value + "&serviceName="+service_value
+                    + "&appName="+appName_value + "&tenantDomain=" + tenantDomain.value;
+            } else {
+                location.href = "application_log_viewer.jsp?type=" + loglevel_value + "&appName="+appName_value +
+                    "&tenantDomain=" + tenantDomain.value ;
+            }
+        } else {
+            if(serviceName != null) {
+                location.href = "application_log_viewer.jsp?type="+loglevel_value + "&keyword=" + keyword.value +
+                    "&serviceName="+service_value + "&appName="+appName_value;
+            } else {
+                location.href = "application_log_viewer.jsp?type="+loglevel_value + "&keyword=" + keyword.value +
+                    "&appName="+appName_value;
+            }
+        }
+    } else {
+        return;
+    }
+
+
+}
+
+function getTenantProductSpecificIndex() {
+    var loglevel = document.getElementById("logLevelID");
+    var appName = document.getElementById("appName");
+    var loglevel_index = null;
+    var loglevel_value = null;
+    var appName_index = null;
+    var appName_value = null;
+    var servicelevel_idex = null;
+    var service_value = null;
+    var tenantDomain = document.getElementById("tenantDomain");
+    var serviceName = document.getElementById("serviceName");
+    if (loglevel != null)
+    {
+        loglevel_index = loglevel.selectedIndex;
+        if (loglevel_index != null) {
+            loglevel_value = loglevel.options[loglevel_index].value;
+        }
+    }
+
+    if(serviceName !=  null)
+    {
+        servicelevel_idex = serviceName.selectedIndex;
+        if(servicelevel_idex != null) {
+            service_value = serviceName.options[servicelevel_idex].value;
+        }
+    }
+
+    if (appName != null)
+    {
+        appName_index = appName.selectedIndex;
+        if (appName_index != null) {
+            appName_value = appName.options[appName_index].value;
+        }
+    }
+    if (loglevel_value == "Custom") {
+        loglevel_value = "ALL";
+    }
+    var keyword = document.getElementById("logkeyword");
+    if (keyword != null && keyword != undefined) {
+        if (keyword.value == "") {
+            if(tenantDomain != null && tenantDomain != undefined ) {
+                location.href = "application_log_viewer.jsp?type=" + loglevel_value +"&appName="+appName_value+
+                    "&tenantDomain=" + tenantDomain.value + "&serviceName=" + service_value;
+            } else {
+                location.href = "application_log_viewer.jsp?type=" + loglevel_value +"&appName="+appName_value+
+                     "&serviceName=" + service_value;
+            }
+        } else {
+            if(tenantDomain != null && tenantDomain != undefined ) {
+                location.href = "application_log_viewer.jsp?type=" + loglevel_value +"&appName="+appName_value+
+                    "&tenantDomain=" + tenantDomain.value + "&serviceName=" + service_value + "&keyword=" + keyword.value;
+            } else {
+                location.href = "application_log_viewer.jsp?type=" + loglevel_value +"&appName="+appName_value+
+                    "&serviceName=" + service_value + "&keyword=" + keyword.value;
+            }
+        }
+    } else {
+        return;
+    }
+}
+
+function getProductTenantSpecificIndex() {
+    var loglevel = document.getElementById("logLevelID");
+    var loglevel_index = null;
+    var loglevel_value = null;
+    var tenantDomain = document.getElementById("tenantDomain");
+
+    var serviceName = document.getElementById("serviceName");
+    if (loglevel != null)
+    {
+        loglevel_index = loglevel.selectedIndex;
+        if (loglevel_index != null) {
+            loglevel_value = loglevel.options[loglevel_index].value;
+        }
+        if (loglevel_value == "Custom") {
+            loglevel_value = "ALL";
+        }
+    }
+    var keyword = document.getElementById("logkeyword");
+    if (keyword != null && keyword != undefined) {
+        if (keyword.value == "") {
+            if(tenantDomain != null && tenantDomain != undefined ) {
+                location.href = "index.jsp?type=" + loglevel_value + "&tenantDomain="+tenantDomain.value + "&serviceName="+serviceName.value;
+            } else {
+                location.href = "index.jsp?type=" + loglevel_value + "&serviceName=" + serviceName.value;
+            }
+
+        } else {
+            if(tenantDomain != null && tenantDomain != undefined ) {
+                location.href = "index.jsp?type=" + loglevel_value + "&serviceName=" + serviceName.value +
+                    "&tenantDomain=" + tenantDomain.value + "&keyword=" + keyword.value;
+            } else {
+                location.href = "index.jsp?type=" + loglevel_value + "&serviceName=" + serviceName.value +
+                    "&keyword=" + keyword.value;
+            }
+        }
+    } else {
+        return;
+    }
+}
+
+function submitenter(e) {
+	var keycode;
+	if (window.event) {
+		keycode = window.event.keyCode;
+	} else if (e) {
+		keycode = e.which;
+	}
+	if (keycode == 13) {
+		searchLogs();
+		return true;
+	} else {
+		return true;
+	}
+}
+
+function submitenterNormal(e) {
+    var keycode;
+    if (window.event) {
+        keycode = window.event.keyCode;
+    } else if (e) {
+        keycode = e.which;
+    }
+    if (keycode == 13) {
+        searchNormal();
+        return true;
+    } else {
+        return true;
+    }
+}
+
+function submitenterNormalManager(e) {
+    var keycode;
+    if (window.event) {
+        keycode = window.event.keyCode;
+    } else if (e) {
+        keycode = e.which;
+    }
+    if (keycode == 13) {
+        searchNormalManager();
+        return true;
+    } else {
+        return true;
+    }
+}
+function submitenterTenant(e) {
+    var keycode;
+    if (window.event) {
+        keycode = window.event.keyCode;
+    } else if (e) {
+        keycode = e.which;
+    }
+    if (keycode == 13) {
+        getTenantSpecificIndex ();
+        return true;
+    } else {
+        return true;
+    }
+}
+
+function submitenterbottomUp(e)
+{
+    var keycode;
+    if (window.event) {
+        keycode = window.event.keyCode;
+    }
+    else if (e) {
+        keycode = e.which;
+    }
+    if (keycode == 13)
+    {
+    	searchLogBottomLogs();
+        return true;
+    }
+    else {
+        return true;
+    }
+}
+
+function isNumeric(str)
+{
+	var validChars = "0123456789";
+	var isNumber = true;
+	var char;
+	for (i = 0; i < str.length && isNumber == true; i++) {
+		char = str.charAt(i);
+		if (validChars.indexOf(char) == -1) {
+			isNumber = false;
+		}
+	}
+	return isNumber;
+}
+
+
+function searchLogBottomLogs() {
+	var logFile = document.getElementById("logFile").value;
+	var log_index = document.getElementById("logIndex").value;
+	var loglevel = document.getElementById("logLevelID");
+	var serviceName = document.getElementById("serviceName").value;
+	var loglevel_index = null;
+	var loglevel_value = null;
+	var tenantDomain = document.getElementById("tenantDomain").value;
+    if(log_index == ''){
+        CARBON.showWarningDialog('Head index cannot be empty');
+        return false;
+    }
+    if(! isNumeric(log_index)) {
+    	 CARBON.showWarningDialog('Enter non negative numeric values for log head');
+         return false;
+    }
+    if(log_index < 1){
+    	CARBON.showWarningDialog('Log index should be between 1 and 10000000');
+        return false;
+    }
+    if(log_index > 10000000){
+        CARBON.showWarningDialog('Log index should be between 1 and 10000000');
+        return false;
+    }
+	if (loglevel != null) {
+		loglevel_index = loglevel.selectedIndex;
+		if (loglevel_index != null) {
+			loglevel_value = loglevel.options[loglevel_index].value;
+			if (loglevel_value == "Custom") {
+				loglevel_value = "ALL";
+			}
+		}
+	}
+	var keyword = document.getElementById("keyword");
+	if (keyword != null && keyword != undefined && keyword.value != null
+        && keyword.value != undefined) {
+		if (keyword.value == "") {
+			location.href = "view.jsp?type=ALL&logIndex=" + log_index+"&logFile="+logFile+"&tenantDomain="+tenantDomain+"&serviceName="+serviceName;
+		} else {
+			location.href = "view.jsp?type=" + loglevel_value + "&keyword="
+					+ keyword.value+"&logIndex=" + log_index+"&logFile="+logFile+"&tenantDomain="+tenantDomain+"&serviceName="+serviceName;
+		}
+	} else {
+		return;
+	}
+}
+function searchLogs() {
+    var loglevel = document.getElementById("logLevelID");
+    var tenantDomain = document.getElementById("tenantDomain");
+    var serviceName = document.getElementById("serviceName");
+    var loglevel_index = null;
+    var loglevel_value = null;
+    var servicelevel_idex = null;
+    var service_value = null;
+    var collapseVal = document.getElementById("propertyTableSearch");
+    var collapse = "false";
+
+    if (loglevel != null)
+    {
+        loglevel_index = loglevel.selectedIndex;
+        if (loglevel_index != null) {
+            loglevel_value = loglevel.options[loglevel_index].value;
+        } 
+        if (loglevel_value == "Custom") {
+			loglevel_value = "ALL";
+		}
+    }
+    if(collapseVal.style.display == "") {
+        collapse = "true";
+    }
+
+    if(serviceName !=  null)
+    {
+        servicelevel_idex = serviceName.selectedIndex;
+        if(servicelevel_idex != null) {
+            service_value = serviceName.options[servicelevel_idex].value;
+        }
+    }
+    var propertyTab = document.getElementById('propertyTable');
+    var propertySymbolMax =  document.getElementById('propertySymbolMax');
+
+    var keyword = document.getElementById("logkeyword");
+    if (keyword != null && keyword != undefined) {
+        if (keyword.value == "") {
+            if(tenantDomain != null && tenantDomain != undefined ) {
+                if(serviceName != null) {
+                    location.href = "index.jsp?type="+loglevel_value+"&tenantDomain=" + tenantDomain.value +
+                        "&serviceName="+service_value + "&collapse=" + collapse;
+                } else {
+                    location.href = "index.jsp?type="+loglevel_value+"&tenantDomain=" + tenantDomain.value +
+                        "&collapse=" + collapse;
+                }
+            } else {
+                if(serviceName != null) {
+                    location.href = "index.jsp?type="+loglevel_value+"&serviceName=" + service_value + "&collapse=" + collapse;
+                } else {
+                    location.href = "index.jsp?type=" + loglevel_value + "&collapse=" + collapse;
+                }
+            }
+        } else {
+            if(tenantDomain != null && tenantDomain != undefined ) {
+                if(serviceName != null) {
+                    location.href = "index.jsp?type="+loglevel_value + "&tenantDomain="+tenantDomain.value  +
+                        "&serviceName=" + service_value+ "&keyword="+ keyword.value + "&collapse=" + collapse;
+                } else {
+                    location.href = "index.jsp?type=" + loglevel_value + "&tenantDomain="+tenantDomain.value +
+                        "&keyword=" + keyword.value + "&collapse=" + collapse;
+                }
+
+            } else {
+                if(serviceName != null) {
+                    location.href = "index.jsp?type="+loglevel_value + "&serviceName="+service_value +
+                        "&keyword=" + keyword.value + "&collapse=" + collapse;
+                } else {
+                    location.href = "index.jsp?type="+loglevel_value +
+                        "&keyword=" + keyword.value + "&collapse=" + collapse;
+                }
+
+            }
+        }
+    } else {
+        return ;
+    }
+}
+
+function searchNormal() {
+    var loglevel = document.getElementById("logLevelID");
+    var loglevel_index = null;
+    var loglevel_value = null;
+    if (loglevel != null)
+    {
+        loglevel_index = loglevel.selectedIndex;
+        if (loglevel_index != null) {
+            loglevel_value = loglevel.options[loglevel_index].value;
+        }
+        if (loglevel_value == "Custom") {
+            loglevel_value = "ALL";
+        }
+    }
+    var keyword = document.getElementById("logkeyword");
+    if (keyword != null && keyword != undefined && keyword.value != null && keyword.value != undefined) {
+        if (keyword.value == "") {
+            location.href = "index.jsp?type=" + loglevel_value;
+        } else {
+            location.href = "index.jsp?type=" + loglevel_value + "&keyword=" + keyword.value;
+        }
+    } else {
+        return;
+    }
+}
+
+function searchNormalManager() {
+    var loglevel = document.getElementById("logLevelID");
+    var serviceName = document.getElementById("serviceName");
+    var servicelevel_idex = null;
+    var service_value = null;
+    var loglevel_index = null;
+    var loglevel_value = null;
+    var collapseVal = document.getElementById("propertyTableSearch");
+    var collapse = "false";
+    if (loglevel != null)
+    {
+        loglevel_index = loglevel.selectedIndex;
+        if (loglevel_index != null) {
+            loglevel_value = loglevel.options[loglevel_index].value;
+        }
+        if (loglevel_value == "Custom") {
+            loglevel_value = "ALL";
+        }
+    }
+    if(collapseVal.style.display == "") {
+        collapse = "true";
+    }
+
+    if(serviceName !=  null)
+    {
+        servicelevel_idex = serviceName.selectedIndex;
+        if(servicelevel_idex != null) {
+            service_value = serviceName.options[servicelevel_idex].value;
+        }
+    }
+    var keyword = document.getElementById("logkeyword");
+    if (keyword != null && keyword != undefined && keyword.value != null && keyword.value != undefined) {
+        if (keyword.value == "") {
+            location.href = "index.jsp?type=" + loglevel_value + "&serviceName=" + service_value + "&collapse=" + collapse;
+        } else {
+            location.href = "index.jsp?type=" + loglevel_value + "&keyword=" + keyword.value +
+                                "&serviceName=" + service_value + "&collapse=" + collapse;
+        }
+    } else {
+        return ;
+    }
+}
+
+
+function showQueryProperties() {
+    var propertyTab = document.getElementById('propertyTable');
+    var propertySymbolMax =  document.getElementById('propertySymbolMax');
+    if(propertyTab.style.display == 'none') {
+        propertyTab.style.display = '';
+        propertySymbolMax.setAttribute('style','background-image:url(images/minus.gif);');
+    } else {
+        propertyTab.style.display = 'none';
+        propertySymbolMax.setAttribute('style','background-image:url(images/plus.gif);');
+    }
+}
+
+function showQueryPropertiesSearch() {
+    var propertyTab = document.getElementById('propertyTableSearch');
+    var propertySymbolMax =  document.getElementById('propertySymbolMaxSearch');
+    if(propertyTab.style.display == 'none') {
+        propertyTab.style.display = '';
+        propertySymbolMax.setAttribute('style','background-image:url(images/minus.gif);');
+    } else {
+        propertyTab.style.display = 'none';
+        propertySymbolMax.setAttribute('style','background-image:url(images/plus.gif);');
+    }
+}
+function appSubmitenter(e) {
+    var keycode;
+    if (window.event) {
+        keycode = window.event.keyCode;
+    } else if (e) {
+        keycode = e.which;
+    }
+    if (keycode == 13) {
+        searchAppLogs();
+        return true;
+    } else {
+        return true;
+    }
+}
+
+function appSubmitenterTenant(e) {
+    var keycode;
+    if (window.event) {
+        keycode = window.event.keyCode;
+    } else if (e) {
+        keycode = e.which;
+    }
+    if (keycode == 13) {
+        getTenantApplicationSpecificIndex();
+        return true;
+    } else {
+        return true;
+    }
+}
+function searchAppLogs() {
+    var loglevel = document.getElementById("logLevelID");
+    var appName = document.getElementById("appName");
+    var loglevel_index = null;
+    var loglevel_value = null;
+    var appName_index = null;
+    var appName_value = null;
+    if (loglevel != null)
+    {
+        loglevel_index = loglevel.selectedIndex;
+        if (loglevel_index != null) {
+            loglevel_value = loglevel.options[loglevel_index].value;
+        }
+    }
+    if (loglevel_value == "Custom") {
+        loglevel_value = "ALL";
+    }
+    if (appName != null)
+    {
+        appName_index = appName.selectedIndex;
+        if (appName_index != null) {
+            appName_value = appName.options[appName_index].value;
+        }
+    }
+    var keyword = document.getElementById("logkeyword");
+    if (keyword != null && keyword != undefined) {
+        if (keyword.value == "") {
+            location.href = "application_log_viewer.jsp?type=" + loglevel_value + "&appName="+appName_value;
+        } else {
+            location.href = "application_log_viewer.jsp?type=" + loglevel_value + "&keyword=" + keyword.value+"&appName="+appName_value;
+        }
+    } else {
+        return;
+    }
+}
+
+function searchAppLogsAdv() {
+    var loglevel = document.getElementById("logLevelID");
+    var appName = document.getElementById("appName");
+
+    var tenantDomain = document.getElementById("tenantDomain");
+    var serviceName = document.getElementById("serviceName");
+
+    var servicelevel_idex = null;
+    var service_value = null;
+    var loglevel_index = null;
+    var loglevel_value = null;
+    var appName_index = null;
+    var appName_value = null;
+    if (loglevel != null)
+    {
+        loglevel_index = loglevel.selectedIndex;
+        if (loglevel_index != null) {
+            loglevel_value = loglevel.options[loglevel_index].value;
+        }
+    }
+    if (loglevel_value == "Custom") {
+        loglevel_value = "ALL";
+    }
+    if (appName != null)
+    {
+        appName_index = appName.selectedIndex;
+        if (appName_index != null) {
+            appName_value = appName.options[appName_index].value;
+        }
+    }
+
+    if(serviceName !=  null)
+    {
+        servicelevel_idex = serviceName.selectedIndex;
+        if(servicelevel_idex != null) {
+            service_value = serviceName.options[servicelevel_idex].value;
+        }
+    }
+    var keyword = document.getElementById("logkeyword");
+    if (keyword != null && keyword != undefined) {
+        if (keyword.value == "") {
+            if(tenantDomain != null && tenantDomain != undefined ) {
+                if(serviceName != null) {
+                    location.href = "application_log_viewer.jsp?type="+loglevel_value+"&tenantDomain=" +
+                        tenantDomain.value + "&serviceName="+service_value + "&appName=" + appName_value;
+                } else {
+                    location.href = "application_log_viewer.jsp?type="+loglevel_value+"&tenantDomain=" +
+                        tenantDomain.value + "&appName=" + appName_value;
+                }
+            } else {
+                if(serviceName != null) {
+                    location.href = "application_log_viewer.jsp?type="+loglevel_value+"&serviceName=" + service_value +
+                        "&appName=" + appName_value;
+                } else {
+                    location.href = "application_log_viewer.jsp?type=" + loglevel_value + "&appName=" + appName_value;
+                }
+            }
+        } else {
+            if(tenantDomain != null && tenantDomain != undefined ) {
+                if(serviceName != null) {
+                    location.href = "application_log_viewer.jsp?type="+loglevel_value + "&tenantDomain="+
+                        tenantDomain.value  +
+                        "&serviceName=" + service_value+ "&keyword="+ keyword.value + "&appName=" + appName_value;
+                } else {
+                    location.href = "application_log_viewer.jsp?type=" + loglevel_value + "&tenantDomain="+tenantDomain.value +
+                        "&keyword=" + keyword.value + "&appName=" + appName_value;
+                }
+
+            } else {
+                if(serviceName != null) {
+                    location.href = "application_log_viewer.jsp?type="+loglevel_value + "&serviceName="+service_value +
+                        "&keyword=" + keyword.value + "&appName=" + appName_value;
+                } else {
+                    location.href = "application_log_viewer.jsp?type="+loglevel_value +
+                        "&keyword=" + keyword.value + "&appName=" + appName_value;
+                }
+
+            }
+        }
+    } else {
+        return;
+    }
+}
+
+function searchLog111() {
+    var loglevel = document.getElementById("logLevelID");
+	var logFile = document.getElementById("logFile").value;
+	var serviceName = document.getElementById("serviceName").value;
+    var loglevel_index = null;
+    var loglevel_value = null;
+	var tenantDomain = document.getElementById("tenantDomain").value;
+    if (loglevel != null)
+    {
+        loglevel_index = loglevel.selectedIndex;
+        if (loglevel_index != null) {
+            loglevel_value = loglevel.options[loglevel_index].value;
+        }
+    }
+    var keyword = document.getElementById("keyword");
+    if (keyword != null && keyword != undefined && keyword.value != null && keyword.value != undefined) {
+        if (keyword.value == "") {
+            location.href = "syslog_index.jsp?type=ALL"+"&logFile="+logFile+"&tenantDomain="+tenantDomain;
+        } else {
+            location.href = "syslog_index.jsp?type=" + loglevel_value + "&keyword=" + keyword.value+"&logFile="+logFile+"&tenantDomain="+tenantDomain+"&serviceName="+serviceName;
+        }
+    } else {
+        return;
+    }
+}
+
+function clearLogEntries(message) {
+    CARBON.showConfirmationDialog(message, function() {
+        location.href = "syslog_index.jsp?action=clear-logs";
+    });
+}
+
+function viewSingleSysLogLevel() {
+	var loglevel = document.getElementById("logLevelID");
+	var serviceName = document.getElementById("serviceName").value;
+	var logFile = document.getElementById("logFile").value;
+	var tenantDomain = document.getElementById("tenantDomain").value;
+	var loglevel_index = null;
+	var loglevel_value = null;
+	if (loglevel != null) {
+		loglevel_index = loglevel.selectedIndex;
+		if (loglevel_index != null) {
+			loglevel_value = loglevel.options[loglevel_index].value;
+		}
+	}
+	if (loglevel_value != null && loglevel_value != "") {
+		location.href = "view.jsp?type=" + loglevel_value+"&logFile="+logFile+"&tenantDomain="+tenantDomain+"&serviceName="+serviceName;
+	} else {
+		return;
+	}
+}
+
+function clearProperties() {
+	document.getElementById("logIndex").value = "";
+	document.getElementById("type").value="ALL";
+	document.getElementById("keyword").value="";
+}
+
+function searchTenantLog() {
+	var loglevel = document.getElementById("logLevelID");
+	var serviceName = document.getElementById("serviceName").value;
+	var logFile = document.getElementById("logFile").value;
+	var tenantDomain = document.getElementById("tenantDomain").value;
+	var loglevel_index = null;
+	var loglevel_value = null;
+	if (loglevel != null) {
+		loglevel_index = loglevel.selectedIndex;
+		if (loglevel_index != null) {
+			loglevel_value = loglevel.options[loglevel_index].value;
+			if (loglevel_value == "Custom") {
+				loglevel_value = "ALL";
+			}
+		}
+	}
+	var keyword = document.getElementById("keyword");
+	if (keyword != null && keyword != undefined && keyword.value != null
+			&& keyword.value != undefined) {
+		if (keyword.value == "") {
+			location.href = "view.jsp?type=ALL"+"&logFile="+logFile+"&tenantDomain="+tenantDomain+"&serviceName="+serviceName;
+		} else {
+			location.href = "view.jsp?type=" + loglevel_value
+					+ "&keyword=" + keyword.value+"&logFile="+logFile+"&tenantDomain="+tenantDomain+"&serviceName="+serviceName;
+		}
+	} else {
+		return;
+	}
+}
+    
+function getFilteredLogs() {
+	
+	var loglevel = document.getElementById("logLevelID");
+	var log_index = document.getElementById("logIndex").value;
+	var appName = document.getElementById("appName");
+	var start = document.getElementById("start").value;
+	var end = document.getElementById("end").value;
+	if (document.getElementById("NowradioDate").checked) {
+		start='';
+		end='';
+	}
+	var serviceName = null;
+	var tenantDomain = null;
+	 // regular expression to match required date format
+	var reTdate = '\\d{4}-\\d{1,2}-\\d{1,2}\\s\\d{1,2}:\\d{1,2}';
+	var re = new RegExp(reTdate);
+	 
+	if(start != '' && !start.match(re)) {  
+		CARBON.showWarningDialog('Invalid start date Format');
+    	return false; 
+    } 
+	if(end != '' && !end.match(re)) {  
+		CARBON.showWarningDialog('Invalid end date Format');
+    	return false; 
+    } 
+//	// regular expression to match required time format 
+//	var reTime = /^\d{1,2}:\d{2}([ap]m)?$/; 
+//	if(time != '' && !time.match(reTime)) {  
+//		CARBON.showWarningDialog('Invalid Time Format');
+//    	return false; 
+//    } 
+
+	if (document.getElementById("serviceName") != null) {
+		serviceName = document.getElementById("serviceName").value
+	}
+	if (document.getElementById("tenantDomain") != null) {
+		tenantDomain = document.getElementById("tenantDomain").value
+	}
+	var loglevel_index = null;
+	var loglevel_value = null;
+	
+	if (loglevel != null) {
+		loglevel_index = loglevel.selectedIndex;
+		if (loglevel_index != null) {
+			loglevel_value = loglevel.options[loglevel_index].value;
+			if (loglevel_value == "Custom") {
+				loglevel_value = "ALL";
+			}
+		}
+	}
+	var keyword = document.getElementById("keyword").value;
+	var logger = document.getElementById("logger").value;
+	if (appName != null) {
+		appName = document.getElementById("appName").value;
+		location.href = "application_log_viewer.jsp?priority=" + loglevel_value
+		+ "&keyword=" + keyword + "&logIndex=" + log_index
+		+ "&tenantDomain=" + tenantDomain + "&serviceName=" + serviceName
+		+ "&logger=" + logger + "&start=" + start + "&appName=" + appName
+		+ "&end=" + end;
+	} else {
+		location.href = "cassandra_log_viewer.jsp?priority=" + loglevel_value
+		+ "&keyword=" + keyword + "&logIndex=" + log_index
+		+ "&tenantDomain=" + tenantDomain + "&serviceName=" + serviceName
+		+ "&logger=" + logger + "&start=" + start 
+		+ "&end=" + end;
+	}
+	
+}
+
+
+
+function showTrace(obj) {
+    var traceTab = document.getElementById('traceTable'+obj);
+    var traceSymbolMax =  document.getElementById('traceSymbolMax'+obj);
+    if(traceTab.style.display == 'none') {
+        traceTab.style.display = '';
+        traceSymbolMax.setAttribute('style','background-image:url(images/minus.gif);');
+    } else {
+        traceTab.style.display = 'none';
+        traceSymbolMax.setAttribute('style','background-image:url(images/plus.gif);');
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0146032f/components/org.apache.stratos.logging.view.ui/src/main/resources/web/log-view/syslog_index.jsp
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.logging.view.ui/src/main/resources/web/log-view/syslog_index.jsp b/components/org.apache.stratos.logging.view.ui/src/main/resources/web/log-view/syslog_index.jsp
new file mode 100644
index 0000000..efa8af8
--- /dev/null
+++ b/components/org.apache.stratos.logging.view.ui/src/main/resources/web/log-view/syslog_index.jsp
@@ -0,0 +1,368 @@
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<%@ taglib uri="http://wso2.org/projects/carbon/taglibs/carbontags.jar"
+	prefix="carbon"%>
+<%@ page import="org.apache.stratos.logging.view.ui.LogViewerClient"%>
+<%@ page import="org.apache.axis2.context.ConfigurationContext"%>
+<%@ page import="org.wso2.carbon.CarbonConstants"%>
+<%@ page
+	import="org.wso2.carbon.logging.view.stub.types.carbon.LogMessage"%>
+<%@ page import="org.wso2.carbon.utils.ServerConstants"%>
+<%@ page import="org.wso2.carbon.ui.CarbonUIUtil"%>
+<%@ page import="org.wso2.carbon.logging.view.stub.types.carbon.PaginatedLogInfo"%>
+<%@ page import="org.wso2.carbon.logging.view.stub.types.carbon.LogEvent"%>
+<%@ page import="org.wso2.carbon.logging.view.stub.types.carbon.LogInfo"%>
+<%@ page import="org.wso2.carbon.ui.CarbonUIMessage"%>
+<%@ page import="org.wso2.carbon.ui.CarbonUIUtil"%>
+<%@ page import="java.util.regex.Matcher"%>
+<%@ page import="java.util.regex.Pattern"%>
+<script type="text/javascript" src="js/logviewer.js"></script>
+<script type="text/javascript" src="../admin/dialog/js/dialog.js"></script>
+
+<script type="text/javascript">
+function startDownload()
+{
+	var url='download-ajaxprocessor.jsp'; 
+	//jQuery.get(url);
+}
+</script>
+<%!
+private boolean isArchiveFile (String fileName) {
+	String archivePattern = "[a-zA-Z]*\\.gz";
+	CharSequence inputStr = fileName;
+	Pattern pattern = Pattern.compile(archivePattern);
+	Matcher matcher = pattern.matcher(inputStr);
+	return matcher.find();
+}
+%>
+<%
+	String backendServerURL = CarbonUIUtil
+			.getServerURL(config.getServletContext(), session);
+	ConfigurationContext configContext = (ConfigurationContext) config.getServletContext()
+			.getAttribute(CarbonConstants.CONFIGURATION_CONTEXT);
+
+	String cookie = (String) session.getAttribute(ServerConstants.ADMIN_SERVICE_COOKIE);
+	LogViewerClient logViewerClient;
+	String action;
+	LogMessage[] logMessages;
+	LogInfo[] logInfo;
+	String tenantDomain = "";
+	String serviceName = "WSO2 Stratos Manager";
+	boolean isLogsFromSyslog;
+	PaginatedLogInfo paginatedLogInfo;
+	boolean isStratosService = false;
+	String pageNumberStr = request.getParameter("pageNumber");
+	boolean isSTSyslog = false;
+	String serviceNames[];
+	boolean isManager = false;
+	boolean showManager = false;
+	if (pageNumberStr == null) {
+		pageNumberStr = "0";
+	}
+	boolean showTenantDomain = false;
+	int pageNumber = 0;
+	int numberOfPages = 0;
+	try {
+		pageNumber = Integer.parseInt(pageNumberStr);
+	} catch (NumberFormatException ignored) {
+		// page number format exception
+	}
+	try {
+
+		logViewerClient = new LogViewerClient(cookie, backendServerURL, configContext);
+		action = request.getParameter("action");
+		tenantDomain = request.getParameter("tenantDomain");
+		serviceName = request.getParameter("serviceName");
+		isLogsFromSyslog = logViewerClient.isDataFromSysLog(tenantDomain);
+		isSTSyslog = logViewerClient.isSTSyslogConfig(tenantDomain);
+		isManager = logViewerClient.isManager();
+		
+		serviceName = (serviceName == null) ? "WSO2 Stratos Manager" : serviceName;
+		tenantDomain = (tenantDomain == null) ? "" : tenantDomain;
+		serviceNames = logViewerClient.getServiceNames();
+		isStratosService = logViewerClient.isStratosService();
+		showTenantDomain = (isSTSyslog && isLogsFromSyslog && isStratosService);
+		showManager = (isManager && isLogsFromSyslog);
+		if (logViewerClient.isLogsConfigured(tenantDomain)) {
+			paginatedLogInfo = logViewerClient.getPaginatedLogInfo(pageNumber,
+					tenantDomain, serviceName);
+			if (paginatedLogInfo != null) {
+				logInfo = paginatedLogInfo.getLogInfo();
+				numberOfPages = paginatedLogInfo.getNumberOfPages();
+				//logMessages = logViewerClient.getTenentLogs();
+
+				//logMessages = logViewerClient.getLogs(type, keyword);
+
+				for (int i = 0; i < logInfo.length; i++) {
+					String logFile = logInfo[i].getLogName();
+					String logDate = logInfo[i].getLogDate();
+					String logSize = logInfo[i].getLogDate();
+				}
+			}
+			else {
+					logViewerClient.getPaginatedLogInfo(pageNumber,
+							tenantDomain, serviceName);
+					CarbonUIMessage.sendCarbonUIMessage(
+							"Please configure syslog in order to view tenant specific logs.",
+							CarbonUIMessage.ERROR, request);
+		%>
+		<script type="text/javascript">
+			               location.href = "../admin/error.jsp";
+			        </script>
+		<%
+			return;
+				}
+			
+		} else {
+			logViewerClient.getPaginatedLogInfo(pageNumber,
+					tenantDomain, serviceName);
+			CarbonUIMessage.sendCarbonUIMessage(
+					"Please configure syslog in order to view tenant specific logs.",
+					CarbonUIMessage.ERROR, request);
+%>
+<script type="text/javascript">
+	               location.href = "../admin/error.jsp";
+	        </script>
+<%
+	return;
+		}
+
+	} catch (Exception e) {
+		CarbonUIMessage.sendCarbonUIMessage(e.getLocalizedMessage(), CarbonUIMessage.ERROR, request,
+				e);
+%>
+<script type="text/javascript">
+               location.href = "../admin/error.jsp";
+        </script>
+<%
+	return;
+	}
+%>
+
+<fmt:bundle basename="org.apache.stratos.logging.view.ui.i18n.Resources">
+	<carbon:breadcrumb label="system.logs"
+		resourceBundle="org.wso2.carbon.logging.ui.i18n.Resources"
+		topPage="true" request="<%=request%>" />
+	<div id="middle">
+		<h2>
+			<fmt:message key="system.logs" />
+		</h2>
+
+		<div id="workArea">
+			<br />
+			<%
+				if (isLogsFromSyslog) {
+			%>
+			<font color="blue"><fmt:message
+					key="remote.log.location.information" />
+			</font>
+			<%
+				} else {
+			%>
+			<font color="blue"><fmt:message
+					key="local.log.location.information" />
+			</font>
+			<%
+				}
+			%>
+
+			<br /> <br />
+			<%
+				if (showTenantDomain || showManager) {
+			%>
+			<table border="0" class="styledLeft">
+				<tbody>
+					<tr>
+						<td>
+
+							<table class="normal">
+								<tr>
+									<%
+										if (showTenantDomain) {
+									%>
+
+									<td style="padding-right: 2px !important;"><nobr>
+											<fmt:message key="tenant.domain" />
+										</nobr>
+									</td>
+									<td style="padding-right: 2px !important;"><input
+										value="<%=tenantDomain%>" id="tenantDomain"
+										name="tenantDomain" size="20" type="text"></td>
+
+									<td style="padding-left: 0px !important;"><input
+										type="button" value="Get Tenant Logs"
+										onclick="javascript:getTenantSpecificIndex(); return false;"
+										class="button"></td>
+									<%
+										} else {
+									%>
+									<td><input type="hidden" id="tenantDomain"
+										name="tenantDomain" value="<%=tenantDomain%>" />
+									</td>
+									<%
+										}
+												if (showManager) {
+									%>
+									<td style="width: 100%;"></td>
+									<td style="width: 100%;"></td>
+									<td style="width: 100%;"></td>
+									<td style="padding-left: 0px !important;"><nobr>
+											<fmt:message key="service.name" />
+										</nobr>
+									</td>
+									<td style="width: 100%;"></td>
+									<td style="padding-left: 0px !important;"><select
+										name="serviceName" id="serviceName"
+										onchange="getProductTenantSpecificIndex()">
+											<%
+												for (String name : serviceNames) {
+											%>
+											<%
+												if (name.equals(serviceName)) {
+											%>
+											<option selected="selected" value="<%=name%>">
+												<%=name%>
+											</option>
+											<%
+												} else {
+											%>
+											<option value="<%=name%>">
+												<%=name%>
+											</option>
+											<%
+												}
+											%>
+											<%
+												}
+											%>
+
+									</select></td>
+									<%
+										} else {
+									%>
+									<input type="hidden" id="serviceName" name="serviceName"
+										value="<%=serviceName%>" />
+									<%
+										}
+									%>
+								</tr>
+
+
+							</table></td>
+					</tr>
+				</tbody>
+			</table>
+			<%
+				}
+			%>
+			<br /> <br />
+			<carbon:paginator pageNumber="<%=pageNumber%>"
+				numberOfPages="<%=numberOfPages%>" page="index.jsp"
+				pageNumberParameterName="pageNumber" />
+			<table border="1" class="styledLeft">
+				<tbody>
+
+					<tr>
+						<td class="formRow">
+							<table class="styledLeft">
+								<thead>
+									<tr>
+										<th><b><fmt:message key="file.name" /> </b></th>
+										<th><b><fmt:message key="date" /> </b></th>
+										<th><b><fmt:message key="file.size" /> </b></th>
+										<th><b><fmt:message key="action" /> </b></th>
+									</tr>
+								</thead>
+								<%
+									int index = -1;
+										for (LogInfo logMessage : logInfo) {
+											++index;
+											if (index % 2 != 0) {
+								%>
+								<tr>
+									<%
+										} else {
+									%>
+								
+								<tr bgcolor="#eeeffb">
+									<%
+										}
+												if (logMessage.getLogName().trim().equalsIgnoreCase("NO_LOG_FILES")) {
+									%>
+
+									<td colspan="4"><fmt:message key="no.logs" /></td>
+									<%
+										} else {
+													String logFile = logMessage.getLogName().replace("0_","");
+													String logDate = logMessage.getLogDate().replace("0_","");
+													String logSize = logMessage.getFileSize();
+									%>
+
+									<td><%=logFile%></td>
+									<td><%=logDate%></td>
+									<td><%=logSize%></td>
+									<td>
+									   <% if(!isArchiveFile(logFile)) {	%>
+									   <a class="icon-link"
+										style="background-image: url(images/view.gif);"
+										href="view.jsp?logFile=<%=logFile%>&tenantDomain=<%=tenantDomain%>&serviceName=<%=serviceName%>"><fmt:message
+												key="view" /> </a> 
+									    <%
+										}
+									    %>
+									    <% if(isArchiveFile(logFile)) {	%>
+									    <a class="icon-link"
+										style="background-image: url(images/download.gif);"
+										onclick="startDownload()"
+										href="downloadgz-ajaxprocessor.jsp?logFile=<%=logFile%>&tenantDomain=<%=tenantDomain%>&serviceName=<%=serviceName%>"><fmt:message
+												key="download" /> </a>
+									       <%
+										} else {
+									    %>
+										<a class="icon-link"
+										style="background-image: url(images/download.gif);"
+										onclick="startDownload()"
+										href="download-ajaxprocessor.jsp?logFile=<%=logFile%>&tenantDomain=<%=tenantDomain%>&serviceName=<%=serviceName%>"><fmt:message
+												key="download" /> </a>
+										   <%
+										}
+									    %>
+									</td>
+
+									<%
+										}
+									%>
+
+								</tr>
+
+								<%
+									}
+								%>
+							</table>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			<carbon:paginator pageNumber="<%=pageNumber%>"
+			numberOfPages="<%=numberOfPages%>" page="index.jsp"
+			pageNumberParameterName="pageNumber" />
+		</div>
+	</div>
+</fmt:bundle>