不同的服务器对于使用
						
						log4j
						
								是有些不同的,实际使用中主要是用
						
						tomcat
						
								和
						
						jboss
						
								两类,对于
						
						tomcat,
						
								它本身是没有配置
						
						log4j
						
								的,所以使用起来和常规的一样;而在
						
						jboss
						
								中它是本身配置了
						
						log4j
						
								的,所以有时候在看项目代码时,其整个项目并没有
						
						log4j
						
								的配置文件,而在一些类中仍然定义了
						
						Logger,
						
								例如
						
						static Logger log = org.apache.log4j.Logger.getLogger(UserDaoImple.class);
						
								,这就表明开发者打算使用
						
						jboss
						
								默认的
						
						log4j
						
								的配置,我们可以在
						
						jboss
						
								下的对应的
						
						log
						
								目录下的
						
						server.log
						
								中看到日志,
						
						jboss
						
								本身的
						
						log4j
						
								的配置是将
						
						debug,info
						
								级的日志写在
						
						server.log
						
								中,而像
						
						error
						
								等级别比较高的日志打印到控制台上,而写到
						
						server.log
						
								中的日志比较多,并不方便查看。于是我们想到使用自己的
						
						log4j
						
								配置写到某个具体的文件中(注意文件要先建立,才能忘里面写东西,
						
						log4j
						
								自己不能建立文件),但这里因为
						
						jboss
						
								有它自己的
						
						log4j
						
								配置,所以如果我们配置的
						
						log4j
						
								包含
						
						Console
						
								的
						
						Appender
						
								时,就会出错,错误类似于
						
				
				
						
								ERROR: invalid console appender config detected, console stream is looping.
						
						
								
										
								
						
				
				
						
								解决方法一是不用
						
						Console
						
								的
						
						Appender,
						
								或者改
						
						jboss
						
								的配置文件,在
						
						jboss-service.xml
						
								文件里
						
						,
						
								把
						
				
				
						
						<mbean code="org.jboss.logging.Log4jService" name="jboss.system:type=Log4jService,service=Logging">
        <attribute name="ConfigurationURL">resource:log4j.xml</attribute>
        <attribute name="CatchSystemOut">false</attribute>
        <attribute name="Log4jQuietMode">true</attribute>
</mbean>
				
				
						
								。
						
						
						
						
								
								
								
						
				
		
		
				
						
								我建议不用
						
						Console
						
								的
						
						Appender
						
								,当然这是对
						
						jboss3.2.x
						
								是这样,对于
						
						jboss4.0.x
						
								如果我们要用自己的
						
						log4j
						
								配置照上述改还是会有问题,会有类似于
						
						 log4j:ERROR A "org.jboss.logging.util.OnlyOnceErrorHandler" object is not assignable to a "org.apache.log4j.spi.ErrorHandler" variable 
						
								的异常,解决方法是把
						
						/server/default/jbossweb-tomcat55.sar/META-INF/jboss-service.xml 
						
								中的以下两个熟悉改成
						
				
				
						true
<attribute name="Java2ClassLoadingCompliance">true</attribute> 
<attribute name="UseJBossWebLoader">true</attribute>
				
				
						
						
				
		
		以上就是使用
		jboss
		服务器可能出现的问题,解决了这些再来使用
		log4j
		就比较简单了。
	posted on 2007-03-07 21:35 
小虎(年轻) 阅读(2510) 
评论(0)  编辑  收藏  所属分类: 
STRUTS