`
wmj2003
  • 浏览: 97157 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

动态设置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>

分享到:
评论

相关推荐

    log4j2配置多个日志级别

    log4j2配置多个日志级别,拿到即可用, 。

    log4j按功能保存日志

    log4j按功能保存日志

    logstash 采集log4j日志配置文件

    logstash采集log4j日志发送到es配置文件,可以把日志根据日志级别区分开,一个级别一条日志是es中的一条数据

    tomcat下的log4j日志配置

    tomcat下的log4j日志配置,给tomcat配置log4j有好几种方法,我知道的有: 一、tomcat级别的统一日志管理 二、每个webapp分别配置log4j

    log4j-控制指定类,包的日志级别:log4j-demo.zip

    log4j-如何控制指定类,包的日志输出级别: https://blog.csdn.net/u011479200/article/details/102476242

    Log4j日志管理系统简单使用说明

     禁用与使用日志请求只是Log4j其中的一个小小的地方,Log4j日志系统允许把日志输出到不同的地方,如控制台(Console)、文件(Files)、根据天数或者文件大小产生新的文件、以流的形式发送到其它地方等等。...

    log4j日志级别详细介绍

    公司使用Apache作为Web应用服务器,日志采用log4j组件来做。日志是应用软件中不可缺少的部分,Apache的开源项目Log4j是一个功能强大的日志组件,提供方便的日志记录。 Log4j是Apache基金会的一个项 目,Log4j是一个...

    Log4j日志级别

    java Log4j 日 志 级 别 详 述

    log4j的日志级别的调整

    NULL 博文链接:https://lihaiming.iteye.com/blog/2265106

    Log4j2实现不同线程不同级别日志输出到不同的文件中

    Log4j2实现不同线程不同级别日志输出到不同的文件中 源码+log4j jar包

    log4j.properties配置分级别单独打印

    log4j.properties配置分级别单独打印

    使用Log4j进行日志操作

    Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...

    log4j 配置文档(记录日志)

    Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...

    log4j不同级别日志分不同文件记录

    log4j不同级别日志分不同文件记录 log4j不同级别日志分不同文件记录

    打印日志等异常处理,使用Log4j的配置

    #如果一条日志信息的级别大于等于配置文件的级别,就记录配置输出源所对应的辅助类:log4j.appender.输出源名称=类名,如果输出到文件就写FileAppender #指定文件名 Tomcat的根目录: #指定布局方式(消息放入文件...

    log4j2动态修改日志级别及拓展性使用详解

    主要介绍了log4j2动态修改日志级别及拓展性使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    linux基于Log4j应用部署日志级别调整.doc

    基于Apache开源项目Log4j的Web应用,Linux部署控制台日志级别调整。可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地、日志信息的输出格式log4j除了可以记录程序运行日志信息外还有一重要的功能就是...

    深入学习log4j

    Loggers组件的主要功能是提供相应API,根据不同配置的loggers将不同级别的log输入到控制台或文件,类似于java中经常用到的System.out.println,但是log4j封装后的loggers组件能够输出更丰富的信息,包括时间,线程,...

Global site tag (gtag.js) - Google Analytics