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:
???????????? 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文件,加入以下内容:
?????? 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