WAS上日志的问题

过看日志,发现was服务器上的server上的systemout.log太大,打开后发现有关业务数据的日志也全部写在了这个里面,于是进行改进。

先是改写了工程中的log4j配置文件,如下所示


view plaincopy to clipboardprint?
01.log4j.rootLogger=ERROR,A1
02.log4j.logger.CLIENT=INFO,R
03.log4j.logger.FUNCTION=INFO,FUNC
04.
05.log4j.additivity.CLIENT=false
06.log4j.additivity.FUNCTION=false
07.
08.log4j.appender.A1=org.apache.log4j.ConsoleAppender
09.log4j.appender.A1.layout=org.apache.log4j.PatternLayout
10.log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss:SSSS} [%p] %m%n
11.
12.#log4j.appender.R=org.apache.log4j.FileAppender
13.log4j.appender.R.Encoding=utf-8
14.log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
15.log4j.appender.R.File=./logs/cussLog/dos_access.log
16.log4j.appender.R.layout=org.apache.log4j.PatternLayout
17.log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss:SSSS} [%p] %m%n
18.
19.log4j.appender.R.MaxFileSize=100MB
20.
21.
22.log4j.appender.FUNC.Encoding=utf-8
23.log4j.appender.FUNC=org.apache.log4j.DailyRollingFileAppender
24.log4j.appender.FUNC.File=./logs/cussLog/dos_txn.log
25.log4j.appender.FUNC.layout=org.apache.log4j.PatternLayout
26.log4j.appender.FUNC.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss:SSSS} [%p] %m%n
27.
28.log4j.appender.FUNC.MaxFileSize=100MB
log4j.rootLogger=ERROR,A1
log4j.logger.CLIENT=INFO,R
log4j.logger.FUNCTION=INFO,FUNC

log4j.additivity.CLIENT=false
log4j.additivity.FUNCTION=false

log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss:SSSS} [%p] %m%n

#log4j.appender.R=org.apache.log4j.FileAppender
log4j.appender.R.Encoding=utf-8
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=./logs/cussLog/dos_access.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss:SSSS} [%p] %m%n

log4j.appender.R.MaxFileSize=100MB


log4j.appender.FUNC.Encoding=utf-8
log4j.appender.FUNC=org.apache.log4j.DailyRollingFileAppender
log4j.appender.FUNC.File=./logs/cussLog/dos_txn.log
log4j.appender.FUNC.layout=org.apache.log4j.PatternLayout
log4j.appender.FUNC.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss:SSSS} [%p] %m%n

log4j.appender.FUNC.MaxFileSize=100MB

主要是添加了additivity,使得自定义的两个logger不往父类的logger里面再写日志,这样就可以将业务日志和系统日志分离开,进行单独的配置和管理。

但是修改后在tomcat上测试成功后,转移到了was服务器上就遇到了一个这样的问题,全部日志仍然都写在了systemout里面,业务数据日志文件为空。

开始怀疑是log4j的配置问题,检查了很多遍,was服务器上使用的共享库也检查了,server也重启了,甚至node agent也重启了,还是一样的问题。

于是开始从tomcat与was的区别开始考虑。

以前代码中写业务日志文件的部分代码大概为:

view plaincopy to clipboardprint?
01.Log log = LogFactory.getLog(getClass())
Log log = LogFactory.getLog(getClass())

为了找到原因,将写日志文件的代码修改为:

view plaincopy to clipboardprint?
01.Logger log = Logger.getLogger(a.class)
Logger log = Logger.getLogger(a.class)

改成上述方式写业务数据成功,并且系统日志和业务日志也实现了分离。

Google了一下,相关问题还不少,apache甚至专门有文档来说明这个问题。

先说解决方法:

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 的日志组件接管。

原因分析:

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(a.class) 用直接得到 Log4j 的 Logger 也就是跳开了用 LogFactory 来获得 Logger 的尴尬。

我相信一句话,任何事情的发生都是有其原因的。小小的日志文件也是一样。


本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/iv2005/archive/2010/07/26/5767381.aspx
SCI投稿Title Page、Cover letter、Highlights、Manuscript模板 (简要介绍一下论文的创新性). I hope this paper issuitable for “Journal Name”.版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。原文链接:https://blog.youkuaiyun.com/weixin_48615832/article/details/120317336。 阅读详情

相关推荐

430单片机实现三人投票表决器_基于单片机的五人表决器的设计

姚海云+马野摘要:本设计利用51单片机,按键开关模块,数码管显示模块和LED模块来实现一个简单的五人表决器的功能。按键开关模块中的键2~键6表示五个人,由5个人来投票,当同意的票数大于或者等于3人时,数码管显示同意的人数,说明表决通过。当表决的人数小于3时,数码管显示同意的人数。关键词:表决器;单片机;流水灯;数码管;矩阵键盘;时钟中图分类号:TP391 文献标识码:A 文章编号:1009-304...

weixin_33277215的博客 2558

【转载】websphere 7 下面 log4j 不输出

Tomcat log4j配置的日志文件,都可以正常输出,就是在Websphere7 下面不行,无法生成所指向的日志文件,更不用说打印日志信息了。 网上倒是很多人碰到,关键问题是解决方法都没有。要么就是不适合Websphere7。 终于找到了一个,相当不错,原文地址:http://dargoner.iteye.com/blog/738354 以linux为例: 1 新建一个com...

weixin_30753873的博客 187

计算机模拟爆破过程,基于LSDYNA岩石爆破模拟建模分析

原标题:基于LSDYNA岩石爆破模拟建模分析 Ls Dyna岩石爆破模拟仿真作者:dyna_focus擅长领域:dyna/abaqus/hypermesh一、 数值模型的建立1.1 单元及算法的选择岩石,炸药,空气都采用solid164实体单元。岩石采用常应力实体单元,该种单元属于纯粹的lagrange算法,该种算法单元网格附着在材料上,随着材料的流动而产生单元网格的变形,但是在结构变形巨大时,有...

weixin_29494379的博客 7317

was下log4j设置日志不输出问题

而之所以在 tomcat 下表现良好的 log4j 日志输出放到 was 下不灵了,是因为 was 在第二步截住了,was 有一个系统环境变量 org.apache.commons.logging.LogFactory 的值为 com.ibm.was.commons.logging.TrLogFactory,这个类在 ws-commons-logging.jar 中。commons-logging 确定 LogFactory 实现的顺序是。WAS 也是用的 commons-logging 日志框架。

xiongfei0131的专栏 1036

基于三轴加速度计的塑料水管泄漏振动检测技术全解析

在流体力学与结构动力学领域,管道振动分析是评估系统健康状态的关键技术。其基本原理在于,当管道内流体状态发生异常(如泄漏)时,会引发管壁产生特定的机械振动信号。这项技术的核心价值在于实现了对管道系统的非侵入式、在线监测,能够提前预警潜在故障,避免资源浪费与次生灾害。在智慧城市与智能水务等应用场景中,它对于保障供水管网安全、提升运维效率具有重要意义。本文聚焦于如何利用高精度的三轴加速度计,精准捕捉塑料水管因泄漏产生的微弱振动,并通过信号处理与机器学习算法,构建一套从数据采集到泄漏识别与定位的完整工程解决方案。

weixin_32239523的博客 407

【计算机科学导论实验】加法图灵机模拟 题解

本文提供计算机科学导论课程“图灵机加法器”实验的个人思路,仅供参考。

Chavapa's blog 2578

WAS以及weblogic日志说明

【WAS】  1、日志位置  %安装目录%\WebSphere\AppServer\profiles\AppSrv01\logs\server1   2、日志文件说明  SystemErr.log: 系统出错日志  SystemOut.log: 系统中所有活动的日志  trace.log: 系统中所有跟踪的事件的日志  startServer.log: 启动服务器事件的日志  st

禾青的记录 1万+

【FPGA】安路FPGA下载器驱动安装教程

#来自学渣的问候 最近正在参加19年的FPGA创新设计大赛,然后我们选择了安路(全名:上海安路信息科技有限公司)的 FPGA 开发板。安路算是国产FPGA中还不错的一家,和紫光一样,除了自主生产的FPGA,也开始拥有了自己的编译环境。 好了。言归正传,写这篇博客的原因是,前几天在安装 安路 的编译环境和下载器驱动的时候,出了点问题,弄得心烦意乱。所以打算解决之后写篇博客,避开这个神奇的问题。 首先...

Ninquelote的博客 2万+

WAS:WebSphere日志说明

WebSphere日志说明。

netyeaxi的专栏 2821

VirtualBox虚拟机上ubuntu系统安装问题记:显示画面太小、启动就异常退出等

报错:Failed to load R0 module D:/VMMR0.r0: The path is not clean of leading double slashes: ‘D:/VMMR0.r0’ (VERR_SUPLIB_PATH_NOT_CLEAN).解决方法特别简单,就是安装VIrtualBox的时候不要安装在CDE等盘根目录下。首先VirtualBox的下载安装过程是比较简单的,此处就不赘述了。然后E盘下新建个目录,安装到这个目录下就可解决。

qq_42595610的博客 2826

数字IC设计避坑指南:为什么477条net的DRV问题无法修复?解析don‘t touch hierarchy的影响

本文深入解析了数字IC后端实现中,因“don't touch hierarchy”约束导致大量DRV违规(如477条net)无法自动修复的根本原因。文章以Cadence Innovus工具为例,详细阐述了DRV修复机制与设计保护约束的冲突原理,并提供了从日志定位、风险评估到分级解除约束的完整实战策略,帮助工程师有效解决此类设计收敛难题。

hope8的博客 290

部署在WAS下的log日志输出问题

在本地电脑里用RAD中开发项目并部署在本地WAS能正常输出日志,但部署到其它linux系统上里就出现可以创建日志文件但不能输出信息的问题,其中部署的ear包含两个war,每个war都有自己的配置信息,如log4j.xml等。   可能的原因:   一、WAS在启动后分配到的logger很可能不是log4j的,特别是使用logFactory.getLog(name)有得到不同的log实现类;...

guotufu的博客 3330

Debian Buster 软件源失效问题

摘要:基于Debian Buster的ARM64设备因系统版本结束支持(EOL)导致apt update报错404。解决方案包括:1)改用Debian官方存档源(需禁用安全检查);2)升级至受支持的Debian 11/12版本(推荐);3)临时使用第三方镜像源(不推荐)。操作步骤涉及修改sources.list、处理NTP同步问题及清理残留配置。建议优先采用版本升级方案以获得持续安全更新,避免使用过时系统带来的安全隐患。文中提供了完整命令示例和操作记录供参考。

yy_xzz的博客 2179

Was855控制台查看日志中文乱码问题

今天排查一个问题: 本地项目正常,部署到was上面有exception信息。在项目开发过程中为了方便定位错误,我们经常使用一些输出语句,在开发工具打印正常。到was控制台上查看时候就是乱码的。很难受。把was设置下显示中文把。 1.首先登录was控制台 2.打开 服务器-->WebSphere Application Server-->server1(此处是自己服务器名称) ...

songfelicity的博客 2744

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

解决WAS8.5下log4j日志不能正确输出的问题

现象: log4j配置了日志输入文件为某个特定的文件,在TOMCAT下可以正常输现,而在WAS8.5下面,只是创建了这个文件,但内容一直为空,所有的日志都在SystemOut.log中。   产生原因: WAS也是用的commons-logging日志框架,commons-logging中LogFactory 获得实现的顺序是  1. 从应用的 META-INF/services/or...

cloudsandstars的专栏 1652

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

was 记录日志问题

需要在/opt/IBM/WebSphere/AppServer/profiles/AppSrv01(各个节点目录)下的: properties文件夹下增加文件 commons-logging.properties commons-logging.properties文件内容为: org.apache.commons.logging.LogFactory=org.apache.common...

sun_wave 336

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Was(WebSphere)不能正常打印程序日志问题

【was日志配置】 服务器 -- 服务器类型 ——webSphere Appliaction server -- 选择sever -- java和进程管理 -- 进程定义 -- java虚拟机 ,调整“通用JVM参数”。 例如Log4j日志变量名称为:打印目录...

chenshi2812的博客 1785

【转】教你如何看懂WAS 日志(websphere application server)

今天看到关于WAS日志的文章,写的很全面,转来大家学习学习! WebSphere Application Server 是一个基于 Java 的 Web 应用程序服务器,它构建在开放标准的基础之上,能帮助您部署与管理从简单的 Web 站点到强大的电子商务解决方案的诸多应用程序。它遵循 J2EE 并为 Java 组件、XML 和 Web 服务提供了一个可移植的 Web 部署平台,这个平台能够与

anning_88的专栏 3万+

WAS问题解决思路预研

保存文章到麦库关闭工具条 转帖自:http://www.webspherechina.net/club/thread-16826-1-1.html 一、对外表现 1.应用访问速度慢、应用报错(WAS性能差) 2.应用(server)停止对外服务无法访问(WAS服务挂起或者服务器宕机)     二、xxx系统我们发现过的问题 1.WAS内存处理大对象内存分

sallin的专栏 1766

was系统错误日志大量出现标识符缺失

近日,在为驻地工程师查看was日志时,发现大量缺失标识符错误。   was日志的位置: logs 所有类型的日志文件,例如 SystemOut.log、tranlog、FFDC、activity.log 等等。 路径在/logs/server*/下面。 was系统日志: WebSphere Application Server

深蓝@黄炎龙 3698

WAS5.x 下使用 Log4j 为何没有日志输出的详细分析及解决办法

经常碰到有人使用了 Log4j 的项目在别处运行的好好的,一放到 WAS 下发现不能输出日志了:控制台文件 SystemOut.log 中没有 Log4j 本应输出的内容,要么就只见磁盘上有一个设定的日志文件,却总是空空如也。WebSphere 开发与应用社区hRBKe U,a.@HF WebSphere 开发与应用社区6s0~%ez;_8d)\ 本文就来以一个实际的例子分析为...

wu_jiaxiang的专栏 816

WAS:WebSphere6使用apache的commons-logging和log4j打印不出日志的原因及解决方法

WebSphere6使用apache的commons-logging和log4j打印不出日志的原因及解决方法

netyeaxi的专栏 1483

was修改堆内存_WAS问题解决思路

一、对外表现1.应用访问速度慢、应用报错(WAS性能差)2.应用(server)停止对外服务无法访问(WAS服务挂起或者服务器宕机)二、xxx系统我们发现过的问题1.WAS内存处理大对象内存分配bug(大报文(20M)-小报文(20M)-20M)2.内存回收碎片(java heap free memory很多,一个很小的报文都申请不到内存)3.WAS MDB侦听MQ队列问题三、排查思路思路:1.查...

weixin_36221948的博客 2650

was英文版的日志中文乱码问题解决

1:管理控制台--->服务器--->应用程序服务器--->server1--->java和进程管理--->进程定义--->java虚拟机--->将通用jvm参数加上 -Dfile.encoding=GBK -Ddefault.client.encoding=GBK 之前是:-Xgcpolicy:gencon 2.linux ---tail命令 linux中tail命令-...

congine_mcfeng的专栏 644

WAS log时区设置

WAS的server node manager的log比系统时间少了8小时,显然是时区的问题。 系统时区是东八区   改java虚拟机的时区 【进程定义】->【java虚拟机】->【定制属性】 新建 user.timezone   GMT+8   重启server   node manager和server一样的设置...

liuqiang5151的专栏 384
上一篇: SSH的操作日志
下一篇: WINCC用VB读写数据库以及EXCEL导出
gojava
博客等级 码龄24年 352粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值