效果图:
<%@ 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>
分享到:
相关推荐
Log4j 是一个功能强大且广泛使用的日志记录工具,特别是在 SSM(Spring、Spring MVC、Mybatis)整合项目中,合理地配置 Log4j 对项目的日志记录和输出至关重要。本文将详细介绍 SSM 整合中的 Log4j 配置详情,帮助...
Log4j是一款广泛使用的Java日志记录框架,它允许开发者按照功能模块或特定需求记录应用程序运行过程中的事件信息。在“log4j按功能保存日志”的场景中,我们通常会利用Log4j的配置灵活性,将不同功能的日志分别写入...
这个文件定义了Log4j的行为,包括设置日志级别(如DEBUG, INFO, WARN, ERROR, FATAL),定义Appender,以及指定Appender的输出目标。例如: ```properties # log4j.properties 示例 log4j.rootLogger=DEBUG, FILE ...
在Log4j中,控制日志级别主要通过配置文件`log4j.properties`或`log4j.xml`来实现。在提供的压缩包`log4j-demo`中,我们可以找到这样的配置文件。例如,如果我们想要控制特定类`com.example.MyClass`的日志级别为...
本篇我们将深入探讨如何调整log4j的日志级别,以便更好地管理和控制应用程序的日志输出。 首先,我们要理解日志级别在log4j中的含义。Log4j提供了多个预定义的日志级别,按照严重性从低到高排序,包括TRACE、DEBUG...
2. **配置全局 Log4j 属性文件**:在任意位置创建 `log4j.properties` 文件,并设置全局的日志级别、输出格式及存储路径等。通常会将该文件放置在 Tomcat 的 `conf` 目录下。 ```properties log4j.rootLogger=...
Log4j 日志级别详解 Log4j 是 Java 中一种流行的日志记录工具,用于记录应用程序的运行过程和错误信息。Log4j 的核心组件是日志记录器(Logger),它可以根据不同的级别记录日志信息。在 Log4j 中,日志记录器的...
### Log4j日志级别详细介绍 #### Log4j概述 Log4j是Apache基金会下的一个开源项目,它是一个基于Java的日志组件,在众多Java日志框架中占据着重要的位置。Log4j因其丰富的特性和易用性而在企业级应用开发中被广泛...
Log4j 是一款广泛使用的Java日志记录框架,它提供了灵活的日志配置和丰富的日志级别,便于开发者调试和监控应用程序。在Java开发过程中,如果遇到"log4j:WARN Please initialize the log4j system properly"这样的...
### Log4j日志配置详解 #### 一、概述 Log4j 是一个基于 Java 的开源日志记录框架,由 Apache 软件基金会维护。它允许开发人员根据等级记录日志信息,使得用户能够控制日志信息的记录级别及去向。本文将通过一份...
Log4j作为Java领域广泛应用的日志框架,提供了强大的日志记录功能和灵活的配置。本文将深入探讨log4j的配置以及配置文件的详解。** 首先,我们要理解什么是`log4j.properties`文件。这是log4j框架的配置文件,使用...
`log4j`的设计理念是将日志输出与应用程序代码分离,使得日志级别和格式可以根据需要动态调整,而无需修改源代码。 **log4j.properties与log4j.xml配置** 在`log4j`中,有两种主要的配置方式:`log4j.properties`...
log4j2配置多个日志级别,拿到即可用, 。
例如,`%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n`会输出时间戳、日志级别、logger名称、行号和日志消息。如果你的需求更复杂,可以继承`PatternLayout`或`TTCCLayout`等类,然后重写`format()`方法,以满足...
《深入理解Log4j日志打印》 在Java开发领域,日志打印是不可或缺的一环,它对于系统调试、性能监控、故障排查等都起着至关重要的作用。Log4j作为Java中最常用的日志框架之一,深受广大开发者喜爱。本文将深入探讨...
**日志库Log4j详解** 日志在软件开发中起着至关重要的作用,它能够帮助开发者追踪程序运行状态,定位错误,优化性能,并且在生产环境中为运维人员提供宝贵的诊断信息。Log4j,由Apache软件基金会开发,是Java编程...
5. **数据库写入**:要将日志记录到数据库,需要在`log4j.properties`配置文件中设置Appender。例如,可以使用`JDBCAppender`,配置包括数据库连接URL、用户名、密码、SQL语句等。SQL语句通常会插入日志级别、时间戳...
在“log4j日志.zip”压缩包中,包含的可能是Log4j的配置文件(如log4j.properties或log4j.xml)。这个文件定义了日志的级别、输出位置和格式。例如: ```properties # log4j.properties 示例 log4j.rootLogger=...
《深入理解Log4j日志框架》 在Java开发领域,日志系统是不可或缺的工具,它用于记录程序运行过程中的各种信息,帮助开发者在问题出现时定位和解决问题。Log4j作为Apache软件基金会的一个开源项目,是Java世界中最...