工程里LOG4J的配置
在src根目录下 log4j.properties
里的配置内容如下
---------------------------------------
log4j.rootCategory=info,A1
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=D:/log/sysinfo.log
log4j.appender.A1.DatePattern='.'yyyy-MM-dd
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
------------------------------------------------------------
在TOMCAT的服务器下好用,打包放到WEBSPHERE下,就没有不好用了?,输出都打印到SystemOut.log里了。
解决方法:
log实例是通过 commons-logging 获得的,即用 Log log = LogFactory.getLog(getClass())
如果是这样的,那么有两种方法解决在 websphere 下的日志输出问题:
1. 用 Logger log = Logger.getLogger(BudgetQryServiceImpl.class) 直接获得 log4j 的 Logger 实例;
2. 仍用 Log log = LogFactory.getLog(getClass())
但必须在应用目录的 META-INF/services 中加个文件 org.apache.commons.logging.LogFactory
内容为:
org.apache.commons.logging.impl.LogFactoryImpl
默认时,日志实现会被 websphere 的日志组件接管,这就是为什么 tomcat 下行, websphere 下不行。
充一下:
WAS 也是用的 commons-logging 日志框架
commons-logging 确定 LogFactory 实现的顺序是
1. 从应用的 META-INF/services/org.apache.commons.logging.LogFactory 中获得 LogFactory 实现
2. 从系统环境中获得 org.qpache.commons.logging.LogFactory 获得 LogFactory 实现
3. 从 classpath 下的 commons-logging.properties 文件中获得 LogFactory 实现
而之所以在 tomcat 下表现良好的 log4j 日志输出放到 was 下不灵了,是因为 was 在第二步截住了,was 有一个系统环境变量 org.qpache.commons.logging.LogFactory 的值为 com.ibm.was.commons.logging.TrLogFactory,这个类在 ws-commons-logging.jar 中。
所以我们在使用 commons-logging 时,要能应用到所期望的 LogFactory 实现就要在第一步获得 LogFactory 实现,这就是前面的第二种方法。
而 Logger log = Logger.getLogger(BudgetQryServiceImpl.class) 用直接得到 Log4j 的 Logger 也就是跳开了用 LogFactory 来获得 Logger 的尴尬。
分享到:
相关推荐
这样,Log4j就应该能够正常工作,日志将会按照你在Log4j配置文件中指定的方式输出,而不是被WebSphere接管。 总结来说,配置Log4j在WebSphere V7上运行,需要解决的是WebSphere内置日志系统与Log4j之间的冲突,通过...
至于WSAD(WebSphere Application Developer)5.1配置log4j的步骤,可以通过编辑服务器的类加载器配置,将log4j的相关JAR文件添加到服务器的类路径,并确保`log4j.properties`文件在正确的位置。`WSAD5.1配置log4j....
最后,关于log4J的集成,因为Spring框架通常依赖log4J来管理日志,所以需要在`web.xml`中指定log4j配置文件的位置,这样Spring启动时会读取这个配置文件来设定日志输出的级别、格式等参数。例如: ```xml <!-- log4...
Websphere 中生成日志问题是非常常见的问题,但通过正确地配置 log4j.properties 文件、修改 commons-logging.jar 文件和配置共享库,我们可以轻松解决这个问题。同时,我们还需要注意 Websphere 的类加载机制可能会...
在WebSphere环境中,正确配置Log4J可以帮助开发者更好地诊断问题、监控系统状态并进行调试。理解如何配置Log4J的日志级别、布局和 appenders 对于有效管理日志信息至关重要。 4. **WebSphere技术交流问题清单**:这...
在实际应用中,比如在Java代理中,只需简单配置Log4j的XML配置文件,添加相应的Appender,就可以实现日志信息直接写入指定的Domino数据库。对于Java客户端,同样可以通过配置,让客户端的日志信息也能同步到服务器端...
4. **部署和测试**:将含有Log4j2配置的IIB节点或应用部署到服务器上,然后通过发送消息和检查日志输出来验证Log4j2是否正确工作。 5. **优化和维护**:根据实际需求调整Log4j2的配置,例如增加日志级别、更改日志...
- **日志记录**:确保日志记录工具(如Log4j)的配置文件中指定了正确的字符编码。 #### 三、案例实践 以修改JVM参数为例,假设当前的启动命令如下: ``` /opt/IBM/WebSphere/AppServer/java/bin/java -Declipse....
需要注意的是,如果你的应用部署在一个包含Commons Logging的环境中,如Tomcat和WebSphere,你的Log4J配置将被忽略。这是因为MyBatis会优先选择Commons Logging作为日志实现。 本文详细介绍了如何在SSM框架下结合...
默认情况下,日志会记录在文件中,但可以修改配置使日志直接输出到控制台,例如将${SERVER_LOG_ROOT}/SystemOut.log和${SERVER_LOG_ROOT}/SystemErr.log改为console。记得在正式运行时恢复原来的设置,以便更好地...
为了调试和优化,OpenJPA提供了详细的日志功能,可以通过配置log4j.properties文件来控制日志级别和输出。这对于理解和优化OpenJPA的行为非常有帮助。 最后,记得在部署应用到WebSphere之前,进行适当的测试。可以...
在 Websphere 中配置 Log4j,通常需要解决类加载器问题,确保 Log4j 配置文件的正确加载,以及配置适当的 Appender 来将日志输出到指定的位置。 在项目文件“webserviceDemo”中,可能包含了以下内容:配置文件(如...
3. **Log4J 官方文档**:详细介绍Log4J的功能、配置和使用方法。 4. **JDK 1.4 日志记录API文档**:介绍了JDK 1.4中提供的日志记录API及其使用方式。 5. **Jakarta Commons-Logging官方文档**:提供了JCL的全面指南...
这时,可以使用专门的日志分析工具,如IBM本身的`SupportPac`系列工具,或者第三方工具如`Log4j`、`Logback`等,它们可以帮助过滤、排序和分析日志。此外,利用文本编辑器(如Notepad++)或IDE(如Eclipse、IntelliJ...
项目中可能包含`src`目录存放源代码,`lib`或`dependencies`目录存放依赖库,`resources`目录存放配置文件,如数据库连接配置和log4j配置文件等。 6. **应用服务器配置**:除了Tomcat,还有其他应用服务器如Jetty、...
4. **Heapdump文件分析**:生成Heapdump文件,并使用MDD4J(Memory Diagnostic for Java)或其他专业工具进行深入分析,定位内存泄漏的确切位置和原因。这是解决问题的关键步骤,通常需要一定的技术背景和经验。 5....
- 创建Heapdump文件,利用MDD4J进行深入分析,找出内存泄漏的根本原因。 - 将分析结果反馈给开发部门,修复代码后重新部署到WebSphere应用服务器。 2. WebSphere应用服务器内存泄漏探测工具 - 性能诊断顾问:这...
由于 Spring 框架使用 log4j 进行日志管理,因此需要在 web.xml 中指定 log4j 配置文件的位置,创建监听器类以初始化 log4j 配置。这使得应用程序可以按照配置文件的规则记录日志,方便监控和调试。 通过以上步骤...