首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

Log4J运用完全手册(转)

2012-11-05 
Log4J使用完全手册(转)Log4J是Apache的一个开放源代码项目(http://logging.apache.org/log4j/docs/),它是

Log4J使用完全手册(转)
Log4J是Apache的一个开放源代码项目(http://logging.apache.org/log4j/docs/),它是一个日志操作包。通过使用Log4J,可以指定日志信息输出的目的地,控制每一条日志的输出格式,定义日志信息的级别。所有这些功能通过一个配置文件灵活进行配置。

一、LOG4J组成

??? LOG4J主要由三大组件组成:
??? . Logger: 决定什么日志信息应该被输出、什么日志信息应该被忽略;
??? . Appender: 指定日志信息应该输出到什么地方, 这些地方可以是控制台、文件、网络设备;
??? . Layout: 指定日志信息的输出格式;

??? 一个Logger可以有多个Appender,也就是说日志信息可以同时输出到多个设备上,每个Appender对应
??? 一种Layout(示例见下图)。

????????????? ↗? Appender1? →? Layout
???? /????
??? Logger
???? ﹨ ?
????????????? ↘? Appender2? →? Layout


二、Logger组件

??? 1. Logger组件提供的方法:

?????? Logger组件是LOG4J的核心组件,它代表了Log4J的日志记录器,它能够对日志信息进行分类筛选。它由org.apache.log4j.Logger类实现,提供了如下方法:

?

    ???????? 下面为一使用Log4J的程序,程序名为Test.java:

          ???????????? myLogger.info("Thie is a log message from the " + myLogger.getName());
          ???????????? myLogger.warn("Thie is a log message from the " +? myLogger.getName());
          ???????????? myLogger.error("Thie is a log message from the " + myLogger.getName());
          ???????????? myLogger.fatal("Thie is a log message from the " + myLogger.getName());

          ???????????? mySonLogger.debug("Thie is a log message from the " + mySonLogger.getName());
          ???????????? mySonLogger.info("Thie is a log message from the " + mySonLogger.getName());
          ???????????? mySonLogger.warn("Thie is a log message from the " +? mySonLogger.getName());
          ???????????? mySonLogger.error("Thie is a log message from the " + mySonLogger.getName());
          ???????????? mySonLogger.fatal("Thie is a log message from the " + mySonLogger.getName());
          ?????????? %>
          ?????????? <br>
          ???????????? <form name="loginForm" method="post" action="dispatcher">
          ???????????? username: <input type="text" name="username">
          ???????????? <br>
          ???????????? password: <input type="text" name="password">
          ???????????? <br>
          ???????????? <input type="submit" name="submit" value="submit">
          ?????????? </form>
          ???????? </body>
          ?????? </html>
          ??????????????
          ??? 3. 发布运行使用Log4J的web应用
          ?????? 1) 将Log4J的JAR文件拷贝至目录:<WEB应用所在目录>/WEB-INF/lib
          ?????? 2) 创建Log4J的配置文件log4j.properties, 存放目录为:<WEB应用所在目录>/WEB-INF。内容同前面配置文件示例。
          ?????? 3) 编译Log4JServlet, 存放至目录: <WEB应用所在目录>/WEB-INF/classes
          ?????? 4) 修改web.xml文件,加入以下内容:

          1. <servlet>??
          2. ??<servlet-name>log4jServlet</servlet-name>??
          3. ??<servlet-class>Log4JServlet</servlet-class>??
          4. ??<init-param>??
          5. ????<param-name>profile</param-name>??
          6. ????<param-value>/WEB-INF/log4j.properties</param-value>??
          7. ??</init-param>??
          8. ??<load-on-startup>1</load-on-startup>??
          9. </servlet>??


          ?????? 5) 启动服务器,访问login.jsp页面,在服务器控制台上看到如下日志:
          ????????? WARN - Thie is a log message from the myLogger
          ????????? ERROR - Thie is a log message from the myLogger
          ????????? FATAL - Thie is a log message from the myLogger
          ????????? WARN - Thie is a log message from the myLogger.mySonLogger
          ????????? ERROR - Thie is a log message from the myLogger.mySonLogger
          ????????? FATAL - Thie is a log message from the myLogger.mySonLogger

          ????????? 另在<WEB应用所在目录>/WEB-INF目录下看到一个log.txt文件,内容如下:

          ????????? WARN - Thie is a log message from the myLogger.mySonLogger
          ????????? ERROR - Thie is a log message from the myLogger.mySonLogger
          ????????? FATAL - Thie is a log message from the myLogger.mySonLogger

热点排行