动态控制Log4J日志级别,只需要一个JSP页面即可。log4jCtl.jsp如下
<%@ page language= "java" contentType ="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ page import="org.apache.log4j.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="basePath" value="${pageContext.request.contextPath} "/>
<!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> Log4J级别控制</title >
<style type="text/css" >
/* 超级链接样式 */
a{
text-decoration: none ;
}
a:link {text-decoration :none ;}
a:visited {text-decoration :none;}
a:hover {color : #F60; text-decoration: underline;}
a:active {text-decoration :underline;}
body {
font: normal 11px auto "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
/*color: #4f6b72;
background: #E6EAE9; */
}
#log-table {
padding: 0 ;
margin: 5px 0 ;
}
tr{
background: #F5FAFA ;
}
tr:nth-child(2n) {
background: #fff ;
}
tr{
background-color: expression( (this.sectionRowIndex % 2 == 0) ? "#F5FAFA" : "#fff" );
}
td {
border-right: 1px solid #C1DAD7 ;
border-bottom: 1px solid #C1DAD7 ;
font-size:12px ;
padding: 6px 6px 6px 12px ;
/*color: #4f6b72; */
}
.left-border{
border-left: 1px solid #C1DAD7 ;
}
th {
font: bold 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
/*color: #4f6b72; */
border-right: 1px solid #C1DAD7 ;
border-bottom: 1px solid #C1DAD7 ;
border-top: 1px solid #C1DAD7 ;
letter-spacing: 2px ;
/*text-transform: uppercase; */
text-align: center ;
padding: 6px 6px 6px 12px ;
background: #CAE8EA ;
}
/*---------for IE 5.x bug*/
html> body td {
font-size:12px ;
}
</style>
</head>
<body>
<h1> Log4J日志级别控制中心 </h1>
<div>
显示 <a href=" ${basePath}/log4j.jsp?showAll=true"> 所有 Logger</a> | 显示<a href="${basePath} /log4j.jsp?showAll=false" >当前运行的Logger</a >
</div>
<%
String logName = request.getParameter( "log");
if (null != logName) {
Logger log = ( "".equals(logName) ? Logger.getRootLogger() : Logger.getLogger(logName));
log.setLevel(Level.toLevel(request.getParameter( "level"), Level.DEBUG));
}
%>
<c:set var="rootLogger" value="<%= Logger.getRootLogger() %>" />
<form>
<table id= "log-table" cellspacing ="0" >
<tr>
<th class="left-border" >Level</ th>
<th> Logger</th >
<th> Set New Level</th >
</tr>
<tr>
<td class="left-border" >${rootLogger.level}</ td>
<td> ${rootLogger.name}</td >
<td>
<c:forTokens var="level" delims="," items="ALL,TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF" >
<a href=" ${basePath}/log4j.jsp?showAll=${param.showAll} &log=&level=${level}">${level}</ a> |
</c:forTokens>
</td>
</tr>
<c:forEach var="logger" items=" ${rootLogger.loggerRepository.currentLoggers}">
<c:if test=" ${!empty logger.level.syslogEquivalent || param.showAll} ">
<tr>
<c:if test=" ${!empty logger.level.syslogEquivalent}">
<td class="left-border" >${logger.level}</ td>
<td> ${logger.name}</td >
<td> <!-- 只有当前已经有实例的Log行能显示出来 -->
<c:forTokens var="level" delims="," items="ALL,TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF" >
<a href=" ${basePath}/log4j.jsp?showAll=${param.showAll} &log=${logger.name}&level=${level}"> ${level}</a > |
</c:forTokens>
</td>
</c:if>
<c:if test=" ${empty logger.level.syslogEquivalent}">
<td class="left-border" >----</ td>
<td> ${logger.name}</td >
<td> 此Logger还未实例化运行 </td>
</c:if>
</tr>
</c:if>
</c:forEach>
</table>
</form>
<div>
显示 <a href=" ${basePath}/log4j.jsp?showAll=true"> 所有 Logger</a> | 显示<a href="${basePath} /log4j.jsp?showAll=false" >当前运行的Logger</a >
</div>
</body>
</html>
相关推荐
1. **配置文件**:如`log4j2.xml`,这是Log4j2的配置中心,定义了日志记录的策略、级别、输出目标等。 2. **日志记录器(Logger)**:负责收集和处理日志事件。 3. **日志级别(Level)**:如`TRACE`, `DEBUG`, `...
在提供的压缩包中,`log4j扩展说明.doc`可能包含了关于如何进行`log4j`二次开发的详细步骤和注意事项,`log4j-1.2.8.jar`是`log4j`的旧版本库,可能用于参考或兼容性测试,而`loggerCenter.rar`可能是日志中心服务的...
Log4j是一款广泛使用的Java日志框架,它提供了灵活的日志记录功能,允许开发者控制日志输出的级别、格式和目的地。本文将详细讨论“决对可用,log4j日志集中处理扩展(含server与client)”这一资源所涉及的知识点,...
首先,是设置 root,格式为 log4j.rootLogger=[level],appenderName, …,其中 level 就是设置需要输出信息的级别,后面是 appender 的输出的目的地,appenderName 就是指定日志信息输出到哪个地方。 配置日志信息...
Log4j 是一款非常流行的 Java 日志框架,它提供了一种灵活的日志记录机制。在实际应用中,开发者可以通过简单的配置来实现对日志级别的控制、日志信息的格式化以及日志文件的管理等。本文将详细介绍 Log4j 的配置...
Log4j 提供了强大的日志功能,允许开发者在运行时控制日志信息的输出,这对于诊断问题、性能分析以及监控应用程序至关重要。这个版本的更新可能包含了安全修复、性能优化或者新特性的添加,确保了与当前环境的兼容性...
在Java世界里,log4j是一个广泛使用的日志框架,允许开发者灵活地控制日志信息的输出。 【描述】"基于Spring Cloud、oAuth2.0开发基于Vue前后分离的开发平台,提供配套视频开发教程" 揭示了该项目的核心技术和架构...
总结来说,`log4j.properties`文件是Log4j框架的配置中心,它决定了日志的输出级别、目的地、格式以及滚动策略等。通过对这个文件的精确调整,开发者能够有效地管理和监控应用的运行情况,从而提高问题排查的效率和...
Log4j由三个主要组件构成:Logger(日志器)、Appender(输出器)和Layout(布局)。Logger负责生成日志事件,Appender决定这些事件如何输出,而Layout则规定了输出的格式。 1. Logger:日志器是创建和管理日志事件...
在Java开发中,日志记录是一项至关重要的任务,它...在实际开发中,你还可以根据需要添加其他Appender(如File Appender),调整日志级别,以及利用Log4j2的过滤器、异步日志记录等功能,实现更复杂和高效的日志策略。
Log4j的配置文件控制了日志的输出行为,可以在开发、测试和生产环境中方便地调整日志级别,帮助调试和监控应用程序。 在这个“struts2+freemarker+log4j”的项目中,可能包含了以下内容: 1. **Struts2的配置文件...
5. **Log4j**: Log4j是Apache的一个项目,是一个广泛使用的日志记录框架。它提供了灵活的日志配置,可以输出到控制台、文件、数据库等多种目的地,同时支持多种日志级别,便于调试和性能分析。 6. **Proxool**: ...
SLF4J(Simple Logging Facade for Java)是Java日志框架的一个抽象层,它提供了一个简单的API,允许开发者在不修改代码的情况下切换底层的日志实现。Logback是SLF4J的一个具体实现,由著名Java开源框架Log4j的创始...
2. **实现 log4j 输出到 Thrift**:编写一个 log4j Appender,它使用 Thrift 库与 Scribe 客户端进行通信,将 log4j 生成的日志转换为 `LogEntry` 对象。 3. **运行 Scribe 客户端**:启动 Scribe 客户端,确保其...
`logback.xml`是Logback的配置中心,它定义了日志级别(TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF),Appender(控制日志输出的位置,如控制台、文件、数据库等),Layout(控制日志输出的格式),Filter(控制...
- **日志配置**:上述提到的 log4j 或其他日志框架的配置。 #### 四、实体映射 实体映射是指将 Java 实体类与数据库表之间的对应关系。实体类通常是 JavaBean,包含属性和 getter/setter 方法。在 Hibernate 中,...
Logback 是一个 Java 平台上的日志框架,由 Ceki Gülcü 创建,作为 Log4j 的继任者。它致力于提供高效、灵活且无侵入的日志记录解决方案。Logback 由三个主要组件构成:logback-core、logback-classic 和 logback-...
在 `src/main/resources` 目录下创建 `log4j.properties` 文件,配置日志级别、输出位置等。例如: ``` log4j.rootLogger=DEBUG, stdout, D log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j....
其中,使用Log4j、LogBack等埋点工具以及SDK/Producer可以实现更细粒度的控制。 Kubernetes日志采集面临诸多挑战,包括多环境动态性、使用负担、服务动态迁移、缺乏中心化配置管理、多种日志格式、集群动态伸缩以及...
它支持多种日志框架,如Log4j、Log4j2和Logback,具备良好的兼容性。 该中间件的核心由LogContext和SwitchContext两部分组成。SwitchContext负责从配置中心获取并更新日志开关状态和Logger的具体配置,同时监听配置...