- 浏览: 63395 次
- 性别:
- 来自: 杭州
最近访客 更多访客>>
最新评论
-
softor:
能否将一个.war的文件设成虚拟目录?
Jboss虚拟目录 -
jolestar:
不知道啥原因,我的一个朋友也这么说。不过我的ff一直稳定,无论 ...
火狐(fireFox)浏览器就知道吹牛(实际使用感受) -
Firede:
我家的IE7经常假死,
FF倒是跑的很顺。
用FF不因为别的 ...
火狐(fireFox)浏览器就知道吹牛(实际使用感受) -
ashion:
引用CS,CS-Source,帝国时代3,极品飞车10(英文) ...
玩QQ游戏每天超过2小时的人比较弱智 -
pig345:
哥们同情你。我目前正要离开这样一个小公司
这里的博客相册可以当网络硬盘使用
log4j是一个很好的开源的日志项目,下面就我在实际中使用的一些情况作一个小结(我所写的是以spring为框架的运用,之所以要提到这点,是因为在spring中专门有处理log4j的地方,而我也用到了这些地方)。
在使用的第一步你要明白你所发布的web项目所使用的服务器,因为不同的服务器对于使用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就比较简单了。
下面说说对于采用了spring框架的项目如何使用log4j,在spring中使用log4j,有些方便的地方,
1. 动态的改变记录级别和策略,即修改log4j.properties,不需要重启Web应用,这需要在web.xml中设置一下。
2. 把log文件定在 /WEB-INF/logs/ 而不需要写绝对路径。
3. 可以把log4j.properties和其他properties一起放在/WEB-INF/ ,而不是Class-Path。
首先我们在web.xml中需要设定一下
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>WEB-INF/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
其中第二部分就是能够动态修改log4j.properties的关键,容器会每60秒扫描log4j的配置文件 。对于log4j的配置文件如何写,这就不多说了,大家可以去google,有一点就是我们如果用RollingFileAppender或者FileAppender时,可以通过${webapp.root}来定位到服务器的发布的该项目下,这是spring把web目录的路径压入到了webapp.root的系统变量。然后,在log4j.properties 里就可以这样定义logfile位置
log4j.appender.logfile.File=${webapp.root}/WEB-INF/logs/myfuse.log
如果有多个web应用,怕webapp.root变量重复,可以在context-param里定义webAppRootKey。
当我们定义完log4j.properties后,剩下的就是在需要记录的class中new 出Logger了
在使用的第一步你要明白你所发布的web项目所使用的服务器,因为不同的服务器对于使用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就比较简单了。
下面说说对于采用了spring框架的项目如何使用log4j,在spring中使用log4j,有些方便的地方,
1. 动态的改变记录级别和策略,即修改log4j.properties,不需要重启Web应用,这需要在web.xml中设置一下。
2. 把log文件定在 /WEB-INF/logs/ 而不需要写绝对路径。
3. 可以把log4j.properties和其他properties一起放在/WEB-INF/ ,而不是Class-Path。
首先我们在web.xml中需要设定一下
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>WEB-INF/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
其中第二部分就是能够动态修改log4j.properties的关键,容器会每60秒扫描log4j的配置文件 。对于log4j的配置文件如何写,这就不多说了,大家可以去google,有一点就是我们如果用RollingFileAppender或者FileAppender时,可以通过${webapp.root}来定位到服务器的发布的该项目下,这是spring把web目录的路径压入到了webapp.root的系统变量。然后,在log4j.properties 里就可以这样定义logfile位置
log4j.appender.logfile.File=${webapp.root}/WEB-INF/logs/myfuse.log
如果有多个web应用,怕webapp.root变量重复,可以在context-param里定义webAppRootKey。
当我们定义完log4j.properties后,剩下的就是在需要记录的class中new 出Logger了
发表评论
-
invalid entry size(expected 429924352 but got 4299
2008-04-13 14:29 6424在安装Oracle10g的时候会发生如下的错误: D:\Or ... -
Oracle数据库的备份与恢复
2008-04-13 14:06 2220(一)导出/导入(EXPORT/IMPORT) 1.用 ... -
About java.lang.outOfMemory
2008-04-13 13:41 1856修改eclipse.ini文件 -vmargs -Xms40m ... -
导出oracle中表的部分数据
2008-04-13 13:26 3375以前我导出数据的时候都是全部导出,但这次遇到的表里的数据实在太 ... -
关于oracle数据库(远程对象调用)
2008-04-13 13:16 905-- Drop existing database l ... -
中文与Unicode编码互转
2008-04-13 13:01 1533<html> <head><ti ... -
时间格式化
2008-04-13 12:55 920String dateStr = "Fri Dec ... -
JSP中连接数据库
2008-04-13 12:52 810<%@ page language="Java ... -
java文件操作
2008-04-13 12:51 7461. ackage com.gamvan.too ... -
Java读取XML
2008-04-13 12:49 1211public class Untitled1 { pub ... -
利用JAVA绘图动态生成图片发送到客户端IE
2008-04-13 12:44 3722package com.gepower.ps.eps.topi ... -
排列组合在工作中的实际运用
2008-04-13 12:42 946个人理解:这个问题的本质是,每一行不选和选1,对于乘积的结 ... -
Jboss虚拟目录
2008-04-13 12:39 3044D:\jboss-4.0.2\server\default\d ... -
HashMap遍历
2008-04-13 12:34 5284import java.util.HashMap; impor ... -
Struts国际化的东西被我小小的一个类就能搞定
2008-04-13 12:30 933Struts国际化的东西叽叽歪歪 不好用, 有那么麻烦么?在J ... -
小日本是这样处理LIST表单更新/插入的
2008-04-13 12:22 1039在JSP中 每个字段对应一个数组。 <input nam ... -
连接数据库的相关代码
2008-04-13 12:18 984package ecogp.dml; import java. ... -
加密密码
2008-04-13 12:16 888package jp.co.smile.common; im ... -
如何将JSP中RadioBox设为不可选状态,并且不变灰
2008-04-13 12:14 2396试过了onchange,onclick事件都不好使。(不用 d ... -
本地计算机上的OracleOraHome92Agent服务启动后又停止了
2008-04-13 12:12 4508本地计算机上的OracleOraHome92Agent服务启动 ...
相关推荐
JBOSS log4j 配置 Log4j 是一个功能强大且灵活的日志记录工具,广泛应用于 Java 项目中。然而,在 JBOSS 服务器中使用 Log4j 时,可能会遇到一些冲突和配置问题。本文将详细介绍如何解决 JBOSS 和 Log4j 的冲突,...
- JBoss 提供了一个名为 `org.jboss.log.Logger` 的包装器类,用于封装 Log4j 的功能,以便更好地与 JBoss 集成。 - **关键方法**包括 `getLogger(String name)`,用于获取指定名称的 Logger 对象。 **Appender ...
#### 四、log4j与Spring框架的集成 在采用Spring框架的Web项目中,log4j的使用变得更加便捷高效。Spring提供了一系列的机制来简化log4j的配置和管理,主要包括: 1. **动态更改日志级别和策略**: - 通过修改log4...
#### 一、Log4j简介与重要性 Log4j是一款广泛使用的Java日志框架,由Apache软件基金会开发维护。它提供了一种灵活的方式来控制应用程序日志的生成,允许开发者自定义日志输出的目的地(例如控制台、文件等)、日志...
### 关于Log4j.xml配置文件的理解与应用 #### 一、引言 在Java开发领域,日志记录是至关重要的一个环节。它不仅能够帮助开发者更好地了解程序运行时的状态,还能在出现故障时快速定位问题所在。Log4j作为一款优秀...
**Slf4j与Log4j的结合使用** 在使用Slf4j时,通常会配合Log4j作为实际的日志实现。要实现这种结合,需要在项目中同时引入Slf4j的API jar包(slf4j-api.jar)和Log4j的实现jar包(log4j.jar)。然后,配置log4j....
在Web项目中使用Log4j时,通常会遇到一些特定场景和技术栈的选择问题,比如如何与Spring框架结合使用,以及如何在不同的服务器环境下(如Tomcat、JBoss)配置Log4j等。 ##### 2.1 Web项目中的Log4j配置 - **基本...
5. **环境兼容性**:JBOSS与特定版本的Log4j可能存在兼容性问题,更新或降级Log4j版本可能解决问题。 针对这个问题,解决步骤通常包括: 1. **检查配置**:仔细核对`log4j.properties`或`log4j.xml`配置文件,确保...
jboss下通过配置log4j.xml实现web应用的日志.htm log4j.xml log4j.xml配置文件设置.doc Log4J快速入门.htm pwosboy -JavaEye技术社区.htm 将系统日志发布到多个文件.htm 请问怎么控制日志的输出啊.htm 怎样关闭...
Log4j测试1、应用服务器版本:JBoss7.x or JBoss EAP 6.x2、日志文件配置详见项目的log4j.properties文件3、访问如下地址日志生成到D:\log4jtest.log4、访问如下地址日志生成到D:\cuntest.log5、buffer默认8k,至少...
JBoss日志Log4j的实现 org.jboss.logging/jboss-logging-log4j/2.2.0.CR1/jboss-logging-log4j-2.2.0.CR1.jar
`jboss-logmanager-log4j.jar`表明JBoss已经集成了Log4j,这是一个广泛使用的Java日志框架。Log4j提供了丰富的日志记录功能,包括定制日志格式、多种输出目的地(如文件、控制台、数据库等)。如果需要通过电子邮件...
在Java开发领域,这些技术是构建企业级应用的基石,它们分别是Hibernate、Spring、Struts、MySQL、Oracle、JBoss、Log4j和iBatis。让我们逐一深入了解这些技术及其jar文件的重要性。 1. Hibernate:这是一个强大的...
JBoss ESB 入门例子。主要是一个Server和一个Client。
JavaEE平台与JBoss4** JavaEE(Enterprise Edition)是Sun Microsystems(现Oracle)为企业级应用开发定义的一套标准,涵盖了服务器端组件模型、Web应用、EJB(Enterprise JavaBeans)、事务处理、消息传递、安全...
Jboss4是一款基于Java的开源应用服务器,它为开发和部署企业级应用程序提供了强大的支持。在本文中,我们将逐步介绍如何安装和配置Jboss4,以便您可以顺利地开始使用这个强大的平台。 首先,我们需要下载Jboss4的...
#### 四、安装与运行 JBoss - **安装 JBoss**:文档详细介绍了如何安装 JBoss 4,包括所需的系统环境和步骤。 - **目录结构**:描述了 JBoss 安装后的主要目录结构,帮助用户了解各部分的作用和位置。 - **默认...
1. 日志文件设置:若需要修改 JBoss 默认的 log4j 设置,可修改 JBoss 安装目录下的 "server/default/conf" 文件夹中的 jboss-log4j.xml 文件。 2. web 服务的端口号的修改:这点在前文中有所提及,需要修改 JBoss ...
当设置为`true`时,jBoss会尝试使用与请求体相同的编码格式来解析URL参数,从而避免了因为编码不一致而引起的乱码问题。 #### 注意事项 - 在进行上述配置时,请确保所使用的字符编码与客户端提交的数据编码保持...