EOS5 默认日志文件详解及生产有关问题定位规则
在EOS5中,日志文件中记录 信息一般是如下格式[@数据类型][数据值],带有@的是表示后面值的类型,值会紧跟着对应的数据的类型
EOS产生的日志文件有如下四个
1.eoslog.log,这个文件中记录了EOS应用运行时,产生的日志信息。
根据在EOSMGR中设置不同的日志级别,输 出不同级别的日志信息
常见的数据类型有:
[@level][ERROR] 表示当前记录日志的级别
[@requestID][1239673854059] 表示请求的ID号
[@module][BIZ] 当前模块的类型
[@bizName][bizAssignment.bizSelfFinishedBizProcessQuery1] 对应执行的BIZ名称
[@module][PR] 当前对应的模块PR
[@prName][wfmgr.prAssignment.prFinishedBizProcessQuery] 对应PR的名称
[@clientIP][10.201.92.38]对应访问此模块或者功能的用户的IP
[@timestamp][2009.04.14 at 14:11:52 907] 模块的执行时间
[@sender][defaultAppID.com.primeton.tp.web.driver.webdriver.WebDriverUpload] 当前日志输出的类文件
[@module][DB] 当前模块为数据库操作模块
根据以上这些信息可以明确的定位出错的代码。
2.userAccessMonitor.log
[2009-04-21 08:29:17,892][1240224115429][B][B][wfmgr.bizAssignment.bizJoinParticipant1][wfmgr.bizAssignment.bizSelfBizProcessQuery1][1061814272][990881824][吴志强][10.194.70.161]
[2009-04-21 08:29:17,893][1240224115429][E][B][wfmgr.bizAssignment.bizJoinParticipant1][wfmgr.bizAssignment.bizSelfBizProcessQuery1][1061814272][990850568][吴志强][10.194.70.161][S]
这条日志是此文件中出现格式的基本形式
[2009-04-21 08:29:17,893]: 表示运行此BIZ的时间
[1240224115429]:表示执行此请求的ID
][B][B] 表示BIZ的开始执行,第一个B表示开始,第二个B,表示类型是PR,还是BIZ
[E][B] 表示此BIZ的执行结束,第一个E表示结束,第二个B,表示类型是BIZ
wfmgr.bizAssignment.bizJoinParticipant1 表示执行的具体BIZ
1061814272 表示JVM的可用最大内存
990850568 表示JVM的空闲内存
吴志强 表示当前操作用户
10.194.70.161 有示当前操作用户的IP
10.194.70.161][S] 这个当中的S,表示执行成功,如果是F,表示执行失败
3.wfmonitor.log
此文件记录的日志全是和流程引擎相关的日志,常见的格式如下:
[2009-04-15 10:28:10,369] [@requestID][1239699333757][@Status][B][@sender][finishWorkItem][@User][黄逸明][@ProcInstID][6899][@WorkItemID][20567]
[2009-04-15 10:28:10,422] [@requestID][1239699333757][@Status][E][@sender][finishWorkItem][@During][53][@Result][successed][@Trans][Commited][@ProcInstID][6899][@WorkItemID][20567]
[2009-04-15 10:28:10,422] 执行的当前时间
[@requestID][1239699333757 用户的请求ID
[@Status][B 表示是开始还是结束
[@User][黄逸明 表示当前用户
[@Result][successed执行结果,是成功还是失败
[@Trans][Commited 事物提交
[@Trans][UnCommit] 事物未提交
[@ProcInstID][6899] 流程实例ID
[@WorkItemID][20567] 工作项ID
[@sender][finishWorkItem] 流程引擎执行的功能
[@Other][participant] 对应的参与者数据
[@ActInstID][34550] 表示活动实例
流程引擎底层的错误信息也会在个文件中输出。
4.consoleLog.log
此文件记录了控制中的所有操作,包含登录,构件包发部等
- {user_name=sysadmin, operation_name=com.primeton.tp.core.config.mbean.EOSConfigRemoteServiceObject.getConfigValues, target_app=defaultAppID, operation_id=, timestamp=1236738438581, ip=10.201.92.38, target_server=localhost}
{user_name=draw090310.epp, operation_name=copy file /opt/EOS/eosserver/tmp/draw090310/draw/bizInter/bizWarehouseAmountUpdate.bza to /opt/EOS/eosserver/bizlogic/draw/bizInter///bizWarehouseAmountUpdate.bza, operation_id=, target_app=, timestamp=1236687584289, ip=cp_success, target_server=localhost}
这个文件的日志比较简单很容易看清。
取得这些日志件的日志是为了方便定位生产系统中出现的问题,问题定位的过程可以按以下几个步骤
1、在EOSLOG中找出出现错误的BIZ或者PR的功能模块,并记录操作用户、请求ID及问题出现时间
2、根据已找到的请求ID,到userAccessMonitor中找到出现问题时间内的请求ID对应的执行过程,同一个用户的请求ID是相同的,可以用UE打开,查找请求ID,就可以查看到用户的请求过程,这样可以快的找到用户的代码执行过程。
3、如是涉及到工作流相关的功能,可以通过请求ID,在wfmonitor中找到工作流引擎数据的变化,工作流执行了哪 些操作。
总之,贯穿三个重要日志文件中都有的就是相近的时间以及请求ID,通过请求ID,可以更快速的定位到问题及原因
通过以上三步,基本上就可以很快的定位出现问题的原因及数据。