![]() |
|
||||||||||||||
| | 网站首页 | 数据库教程 | web编程 | 服务器 | 程序设计 | | ||
|
||
|
||||||
| 使用log4j建立灵活的log机制 - 2 | ||||||
作者:佚名 文章来源:不详 点击数: 更新时间:2007-9-2 ![]() |
||||||
|
原文地址http://www.onjava.com/pub/a/onjava/ 一个简单的log4j的例子 这个应用拥有五个servlet(SetupServlet , LogonServlet, GetCommentsServlet, ForgotPasswordServlet, RegisterServlet) 4个JSP;和一个文件的数据库用来存储用户信息(userDB,应该位于web-inf目录下,确保web.xml文件中填写的是正确的路径) 来看一个实际运行的例子,把log4j demo.war文件部署到你的servlet环境中。 Using properties file: C:\jakarta-tomcat- Watch is set to: null DEBUG - Added line: JohnDoe,herbert,johndoe@john.com,John Doe 前两行的输出是System.out.println打印出来的。其余的都是通过log4j.让我们这是怎么做到的。 用本文编辑工具打开config-simple.properties文件,其中有三行语句(除掉注释)。第一行,log4j.rootLogger=debug,R 设置rootLogger的等级是DEBUG.这一行是默认的,不一定必须要。逗号后的R是必须的,这样是为了告诉LOG4J root logger所对应的是这个名叫R的appender。下面的几行来定义这个appender的属性。 log4j.appender.R=org.apache.log4j.ConsoleAppender这一行定义appender R的类型是ConsoleAppender,简单来说就是这个appender的LOG将输出到命令行。log4j.appender.R.layout=org.apache.log4j.SimpleLayout定义这个appender使用的是simple layout:只输出两种信息:log请求的等级,和实际的输出信息。 Now that we have understood the configuration of our simple example, lets see how we are actually logging in our code. Open up SetupServlet.java in a text editor and look up line 81: 我们介绍了一个简单的配置的例子。现在让我们来看看我们的实际的log的代码。打开SetupServlet.java找到地81行。 PropertyConfigurator.configure(props); 暂时不要去管周围的代码。这行代码是让log4j找到相应的配置文件丛中获得属性。这行代码在你的应用中必须被调用一次,一般都是你的应用的开头位置。在 web 应用中Servlet 的启动代码是个合适的位置。 设置过我们的log4j属性后,我们就做好开始log的准备了。下一步我们要获取一个logger并且使用它来进行所需的log.我们既可以用Logger.getRootLogger()来获取root logger也可以象我们在SetupServlet中那样通过名字来获得一个logger实例。 Logger log = Logger.getLogger(SetupServlet.class); 这个方法返回了相对应的logger,我们可以使用它来进行log.例如我们在112行调用DEBUG方法:log.debug(“Add Line:”+data);实际运行时我们就可以在控制台看到输出了。注意这里我们的配置文件中root logger的等级为DEBUG我们并没有为demo.log4j.servlet.SetupServlet这个logger设置相应的等级它会自动的继承root logger的等级DEBUG,所以我们以上的调用会被送到appender中,试着把root logger的等级改为ERROR会发现之前的那些输出都不见了,这是因为logger的等级变的比实际的log请求的等级高。注意改变root logger的等级你只需要修改配置文件然后重新启动servlet环境就可以(虽然不是一定要重新启动servlet环境这涉及到configureAndWatch我们在后面会讨论这个内容) 我们已经了解了这个简单的例子。让我们重新整理一下这个例子中使用log4j所需要的几步操作
Management Requirements 虽然我们完成了一个相当简单的例子,并了解LOG4J的功能,我们的例子在实际应用中是显然不够的。现在让我站在你的老板的角度来指出这个例子的不足之处。
第二个问题很简单,我们可以把SimpleLayout换成PatternLayout并且为它定义一个conversion pattern. 本文来源:http://blog.csdn.net/zw_errrun/archive/2007/08/02/1723259.aspx
|
||||||
| 文章录入:admin 责任编辑:admin | ||||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | ||||||
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 网站地图 | 管理登录 | | |||
|