天天看點

實時控制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 ;                               }                             #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   ;                               }                .left-border {                      border-left :   1px solid #C1DAD7   ;             }                th   {                   font :   bold 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif ;                                     border-right :   1px solid #C1DAD7   ;                   border-bottom :   1px solid #C1DAD7   ;                   border-top :   1px solid #C1DAD7   ;                   letter-spacing :   2px   ;                                     text-align :   center   ;                   padding :   6px 6px 6px 12px   ;                   background :   #CAE8EA   ;             }                               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 >