浏览 12574 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2005-10-14
1. 在jbuilder2005中加入log4j.jar Project à Project Properties à Required LibrariesàAddàNew 在New Library Wizard中添入Name=log4j Location=JBuilder 点击Library paths 边上的Add 选择log4j.jar的路径c:\bea\weblogic81\common\lib\log4j.jar 2. 在相应的位置我的是(sms.util.Log4JInit)添加类Log4JInit.java,代码如下: package sms.util; import java.io.File; import java.io.IOException; import org.apache.log4j.PropertyConfigurator; import javax.servlet.http.HttpServlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class Log4JInit extends HttpServlet { public void init() throws ServletException { String prefix = getServletContext().getRealPath("/"); String file = getServletConfig().getInitParameter("log4j-config-file"); if (file != null) { PropertyConfigurator.configure(prefix + file); } } public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException, ServletException {} public void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException, ServletException {} public void destroy(){ super.destroy(); } } 这段代码的意思是,在加载的过程中,程序会读取/WEB-INF/log4j.properties这个文件 这个文件就是本文的重点,也就是log4j的配置文件。 3. 在jbuilder2005中的web.xml中加入servlet <servlet> <servlet-name>log4jinit</servlet-name> <servlet-class>sms.util.Log4JInit</servlet-class> (此处需要修改同上的路径) <init-param> <param-name>log4j-config-file</param-name> <param-value>/WEB-INF/log4j.properties</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> 4. 在jbuilder2005工程下面建立一个叫log4j.properties的文件,文件内容如下: log4j.rootLogger=INFO, A_default,CONSOLE ##log4j.rootCategory=INFO, stdout, logfile log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.Threshold=DEBUG log4j.appender.CONSOLE.Target=System.out log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n ## log log4j.appender.A_default=org.apache.log4j.RollingFileAppender ##默认路径参考注释 log4j.appender.A_default.File=rootlog.log log4j.appender.A_default.MaxFileSize=4000KB log4j.appender.A_default.MaxBackupIndex=10 log4j.appender.A_default.layout=org.apache.log4j.PatternLayout log4j.appender.A_default.layout.ConversionPattern=%d{ISO8601} - %p - %m%n 5. 代码中应用log4j 在需要输出日志信息的程序中添加如下代码: //开始导入类 import org.apache.log4j.Logger; 。。。。。。 //在类中声明静态全局变量logger public class AdminAction extends Action { private static Logger logger = Logger.getLogger(AdminAction.class); (AdminAction当然是你自己的得类名了) //在需要输出日志的地方,根据情况不同添加如下代码: logger.info(“This is my first log4j test.”); 6.编译 发布到 weblogic中去。运行程序就ok了。在你的域下面就有一个rootlog.log的日志文件了 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2005-10-14
我在使用 axis 作 webService 中,遇到了这个问题。
在用 log4j 记录日志的时候,当输出级别是 debug 的时候,不但自己程序的 debug 信息输出了,而且 axis 的debug日志信息也输出了。 我应该怎么设置 log4j 来解决这个问题?? |
|
返回顶楼 | |
发表时间:2005-10-16
你看能否这样子:将log4j.properties
中的log4j.rootLogger=INFO, A_default,CONSOLE 改为 log4j.rootLogger=WARN, A_default,CONSOLE 然后在第5步中logger.info(“This is my first log4j test.”); 改为logger.warn(“This is my first log4j test.”); |
|
返回顶楼 | |
发表时间:2005-10-16
log4j.properties配置文件的部分语句注释 log4j.appender.A_default.File=rootlog.log的默认目录:
WSAD 在安装目录下,如:..\IBM\WebSphere Studio\Application Developer\v5.1.1。 Tomcat 在安装目录下,如:..\newsearch(20050429)\Tomcat 具体配置文件的内容解释如下: # Set root logger level to DEBUG and its only appender to A1 #log4j中有五级logger #FATAL 0 #ERROR 3 #WARN 4 #INFO 6 #DEBUG 7 #配置根Logger,其语法为: #log4j.rootLogger = [ level ] , appenderName, appenderName, … log4j.rootLogger=INFO, A1 ,R #这一句设置以为着所有的log都输出 #如果为log4j.rootLogger=WARN, 则意味着只有WARN,ERROR,FATAL #被输出,DEBUG,INFO将被屏蔽掉. # A1 is set to be a ConsoleAppender. #log4j中Appender有几层如控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等 #ConsoleAppender输出到控制台 log4j.appender.A1=org.apache.log4j.ConsoleAppender # A1 使用的输出布局,其中log4j提供4种布局. org.apache.log4j.HTMLLayout(以HTML表格形式布局) #org.apache.log4j.PatternLayout(可以灵活地指定布局模式), #org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串), #org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息) log4j.appender.A1.layout=org.apache.log4j.PatternLayout #灵活定义输出格式 具体查看log4j javadoc org.apache.log4j.PatternLayout #d 时间 .... log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n #R 输出到文件 RollingFileAppender的扩展,可以提供一种日志的备份功能。 log4j.appender.R=org.apache.log4j.RollingFileAppender #日志文件的名称 log4j.appender.R.File=log4j.log #日志文件的大小 log4j.appender.R.MaxFileSize=100KB # 保存一个备份文件 log4j.appender.R.MaxBackupIndex=1 log4j.appender.R.layout=org.apache.log4j.TTCCLayout #log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n |
|
返回顶楼 | |
发表时间:2005-10-17
我把设成 info 的输出,那些 debug 的信息,自然就没有了。
可是,我这边自己的程序不想把一些 debug 级别的日志记录,变成 info级别的啊。 有人告诉我要 把我的的log4j.rootLogger改为log4j.logger.包名。。可是我没有成功。 我改后log4j的配置是: #log4j.rootLogger=INFO,stdout,R log4j.logger.com.webservice.test=DEBUG,stdout,R log4j.addivity.org.apache=true log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm} %-5p] - %m\n log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File=D:/tmp/log/Test.log log4j.appender.R.MaxFileSize=1024KB log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm} %-5p] - %m\n |
|
返回顶楼 | |