动态设置log4j的日志级别

效果图:

效果图 

<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page import="java.util.*,org.apache.log4j.*,org.dom4j.*,org.dom4j.io.*"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
%>
<html>
<head>
<title>重新配置log4j</title>
<link href="${pageContext.request.contextPath}/css/styleqxgl.css" rel="stylesheet" type="text/css">
</head>
<body>
<font class="titleHead">
动态的修改日志级别,可以动态的起作用!
</font>
<%
String renovateParam = request.getParameter("renovateParam");

%>
<form name="myform" method="post" action="<s:url value="/log4jConfigNew.jsp" />">
<input type="hidden" name="renovateParam" value="true">
<table border="1" bordercolor="#7595ea" cellpadding="2" style="border-collapse: collapse " >
<tr  bgcolor="eaf1ff"><td>包</td><td>日志级别</td></tr>
<%
 try{
  String location = config.getServletContext().getInitParameter("log4jConfigLocation");
  out.println("location="+location+"<br><br>");
  
  if (!org.springframework.util.ResourceUtils.isUrl(location)) {
   // Resolve system property placeholders before resolving real path.
   location = org.springframework.util.SystemPropertyUtils.resolvePlaceholders(location);
   location = org.springframework.web.util.WebUtils.getRealPath(config.getServletContext(), location);
  }
  java.net.URL url = org.springframework.util.ResourceUtils.getURL(location);

  SAXReader reader = new SAXReader();

  Document doc = reader.read(url);

  Element root = doc.getRootElement();

  Iterator<Element> itr = root.elements("logger").iterator();

  while (itr.hasNext()) {
   Element category = itr.next();

   String name = category.attributeValue("name");
   Logger logger = Logger.getLogger(name);
   String level = logger.getLevel().toString();
%>


<tr><td>
 <input type="hidden" name="logger" value="<%=name %>"><%=name %>
 </td>
 <td>
 <select name="level">
 <%
 if (level.equals("OFF")){
 %>
  <option name="OFF" selected >OFF</option> 
 <%
 }else{
 %>
  <option name="OFF" >OFF</option> 
 <%  
 }
 %>
 <%
 if (level.equals("FATAL")){
 %>
  <option name="FATAL" selected >FATAL</option> 
 <%
 }else{
 %>
  <option name="FATAL">FATAL</option>
 <%  
 }
 %>
 <%
 if (level.equals("ERROR")){
 %>
  <option name="ERROR" selected >ERROR</option> 
 <%
 }else{
 %>
  <option name="ERROR">ERROR</option>
 <%  
 }
 %>
 <%
 if (level.equals("WARN")){
 %>
  <option name="WARN" selected >WARN</option> 
 <%
 }else{
 %>
  <option name="WARN">WARN</option>
 <%  
 }
 %>
 <%
 if (level.equals("INFO")){
 %>
  <option name="INFO" selected >INFO</option> 
 <%
 }else{
 %>
  <option name="INFO">INFO</option>
 <%  
 }
 %>
 <%
 if (level.equals("DEBUG")){
 %>
  <option name="DEBUG" selected >DEBUG</option> 
 <%
 }else{
 %>
  <option name="DEBUG">DEBUG</option>
 <%  
 }
 %> 
 <%
 if (level.equals("ALL")){
 %>
  <option name="ALL" selected >ALL</option> 
 <%
 }else{
 %>
  <option name="ALL">ALL</option>
 <%  
 }
 %>  
 </select>
 </td>
</tr>

<%
  }
  
 }catch(Exception e){
  out.println("获取log4j配置失败!"+e.getMessage());
  
 }
%>
</table>
<input type="submit" class="button11" value="重新配置日志" >
</form>
<%
if("true".equals(renovateParam)){
 try{
  String[] loggers = request.getParameterValues("logger");
  String[] levels  = request.getParameterValues("level");
  int LEN = loggers.length;
  for(int i=0;i<LEN;i++){
   Logger logger = Logger.getLogger(loggers[i]);
   logger.setLevel(Level.toLevel(levels[i]));
  }
  out.println("log4j重新配置成功!<br>");
  out.println("时间:"+com.work.util.DateUtil.getCurrentDateTime());
 }catch(Exception e){
  out.println("log4j配置失败!"+e.getMessage());
  
 }
}
%>

<hr>

</body>
</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值