`

实时控制log4j日志输出级别-Log4J日志级别控制中心

 
阅读更多

 

动态控制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>&nbsp; |
                                     </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 >&nbsp;|
                                                       </c:forTokens>
                                                 </td>
                                           </c:if>
                                           <c:if test=" ${empty logger.level.syslogEquivalent}">
                                                 <td class="left-border" >----</ td>
                                                 <td> ${logger.name}</td >
                                                 <td> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 此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 楼 chao_t 2013-03-27  
不可以喃,楼主

相关推荐

    spring boot 全面的样例代码

    - chapter4-2-3:[对log4j进行多环境不同日志级别的控制](http://blog.didispace.com/springbootlog4jmuilt/) - chapter4-2-4:[使用AOP统一处理Web请求日志](http://blog.didispace.com/springbootaoplog/) - ...

    LogSystem:kafka+etcd+es+kibana日志系统

    面临的问题实时日志量非常大, 每天几十亿条日志准时收集, 延迟控制在分钟级别能够水平扩展4.ELK方案缺点运维成本高,每增加一个日志搜集,都需要手动需要修改配置监控缺失,无法准确获取logstash的状态无法做定制化开发...

    基于 Java+MySQL 实现(Web)电子商城系统【100011174】

    本商城是在Spring Framework基础上搭建的一个Java基础开发平台,以Spring MVC为模型视图控制器,MyBatis为数据访问层,Apache Shiro为权限授权层,SLF4J+Log4j2为日志管理,Ehcahe对常用数据进行缓存,采用Dubbo...

    单点登录源码

    Log4J | 日志组件 | [http://logging.apache.org/log4j/1.2/](http://logging.apache.org/log4j/1.2/) Swagger2 | 接口测试框架 | [http://swagger.io/](http://swagger.io/) sequence | 分布式高效ID生产 | ...

    JAVA SSH青协志愿服务管理系统源码

    log4j.properties 日志文件 *.properties配置文件 Struts.xml 配置action WebRoot根目录 fckeditor在线编辑器, images img 图片 upload,updown 上传下载, admin common 前台JSP页面 WEB-INF (lib+jsp+*.xml) ...

    JAVA SSH青协志愿服务管理系统源码.rar

    log4j.properties 日志文件 *.properties配置文件 Struts.xml 配置action WebRoot根目录 fckeditor在线编辑器, images img 图片 upload,updown 上传下载, admin common 前台JSP页面 WEB-INF (lib+jsp+*.xml) ...

    java ssh志愿服务管理系统源码

    log4j.properties 日志文件 *.properties装备文件 Struts.xml 装备action WebRoot根目录 fckeditor在线编辑器, images img 图片 upload,updown 上传下载, admin common 前台JSP页面 WEB-INF (lib+jsp+*.xml) ...

    Spring Cloud Finchley SR2全套(集成Spring Gateway)

    &lt;artifactId&gt;log4j-slf4j-impl Redis二次封装的这个项目主要实现了自动延期的功能,可以在配置的时候设置某些缓存是否需要自动延期&lt;默认为ture&gt;,自动延期的将会在获取的时候重置 过期时间来达到自动延期功能。...

    【白雪红叶】JAVA学习技术栈梳理思维导图.xmind

    log4j logback commong logging jdk logger 测试框架 测试框架 junit easymock testng mockito bug管理 禅道 jira 开发工具 编程工具 eclipse myeclipse idea vi VS webstorm sublime text ...

    数据库灾难性恢复(数据库技术;灾难性;恢复;数据备份)

    4. 需要防止的故障级别 4 4.1 可接受的数据丢失量 5 4.2 允许用于恢复的时间量 5 4.3 备份和恢复 5 5. 灾难恢复方案 5 5.1 简单备份 6 5.2 备份和日志保留 7 6. 高级存储备份 8 7. 数据库恢复 9 摘要 随着数据库...

    服务器安全技术详解.pptx

    公司网络安全能力中心及时跟踪研究业界最新安全动态,持续完善协议安全加固规范; 按照安全加固规范要求,禁用不安全通信协议,支持安全协议及安全配置; 选择业界公认的安全通信协议 11 7 服务器安全技术详解全文共...

    微软活动目录管理管理简明手册

    4 k9 H# a7 L4 C" C全局目录服务器是一个域控制器,活动目录建立的第一个域控制器自动成为全局目录服务器。全局目录就放在全局目录服务器上。 5 E4 E: a& _- c% ~1 X 4 Z z8 n. F8 D8 @1 `% A/ p% x4 s2.活动目录的...

    基于Spring Cloud+Netty+Sentinel+Seata+TDengine+Vue的物联网平台项目源码+数据

    设备调试:实时日志、命令下发 规则引擎消息转发:支持KAFKA节点、HTTP节点、PREDICATE节点、ROCKET_MQ节点、RABBIT_MQ节点、MYSQL节点、MQTT节点、TOPIC节点、LOG节点 核心技术: 1、采用前后端分离的模式,前端...

    易想最新升级包V4.0

    --#include file="../admin/log/add_admin_log.asp"--&gt;”的“admin”为您修改后的文件夹名即可。 四、系统说明 YxB2B商务网是易想网络旗下的门户型B2B行业网站系统,采用先进的标签技术和静态生成技术,通过网站...

    中文简体压缩软件RAR 6.0

    在 Windows 中,它名为 rar.log,放在 rar.exe 文件相同的目录中。开关 -ilog 允 许改变默认的日志名。 固实压缩的文件列表 - rarfiles.lst ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rarfiles.lst 包含...

    servicecomb-kie:Apache ServiceComb MetaConfig

    带有标签“ env = production”的键“ log_level”可以为生产环境中的所有应用程序日志级别保存值“ INFO”。 带有标签“ env =生产,组件=付款”的键“ log_level”可以为生产环境中的付款服务保存值“ DEBUG”。 ...

    DP-Health

    平台简介 采用前阶段分离的模式...└──ruoyi-common-core //核心模块│└──ruoyi-common-datascope //权限范围│└ ──ruoyi-common-log //日志记录│└──ruoyi-common-redis //缓存服务│└──ruoyi-common-s

    xmljava系统源码-minimal-cloud:基于SpringCloudAlibaba+Vue-Element-UI的后台管理系统,提供

    流量控制框架选型 Sentinel。 链路追踪框架选型 Zipkin。 分布式事务框架选型 Seata。 如需单体架构,请移步 。 系统模块 com.lzpeng.minimal ├── minimal-admin // 监控中心 [端口] ├── minimal-common // ...

    HGE_系列教材(1-9)

    System_Log 在日志文件中书写格式化消息 System_Launch 运行一个URL 或者外部的可执行文件或数据文件 System_Snapshot 截屏并保存到一个文件 3. 资源函数(Resource functions): Resource_Load 从硬盘上读取资源到...

Global site tag (gtag.js) - Google Analytics