# Log日志分析经验
健全的日志信息建立在开发良好的日志编写习惯上,关于开发编写Log日志注意事项详见本站“CTP技术平台>LOG日志”篇。
# 1、日志结构
以默认安装的(基于Tomcat中间件)的本地OA服务为例,OA的日志存放于如下两个路径下:ApacheJetspeed\logs和ApacheJetspeed\logs_sy
# 2、运维如何快速提取日志
使用S1工具,找到发生异常的日期,对日志进行打包处理,操作方式详见S1用户操作手册:
# 3、技术人员如何获取正确的日志
如果异常刚刚才发生,则直接按照修改日期降序排列,找到最新日志取分析。
如果异常是此前一段时间的,则需要根据日志文件的“修改日期”找跟那段时间接近的日志。
# 2.1、logs目录
ApacheJetspeed\logs目录下的日志是Tomcat中间件日志,主要存放系统启动日志和JSP/Servlet运行时异常。
这个目录下有两个非常关键的日志:catalina.log和localhost.log,这两个日志默认都按照日期自增存放。
# 2.1.1、logs目录catalina日志
catalina-年-月-日.log存放系统启动日志,如果系统启动报错,优先看这个日志的文件信息。启动之初,会有整个Tomcat、JDK、JVM、系统环境变量的配置信息,可以快速通过日志分析当前系统环境情况。
如果更换为weblogic、was、金蝶、东方通等中间件,则需要按各自中间件特性取对应的日志文件(建议参考安装部署手册提取)
# 2.1.2、logs目录localhost日志
localhost日志存放的是Servlet、JSP级别异常,我们常见的页面红字异常都是存放在此处。
# 2.2、logs_sy目录
logs_sy目录下的日志非常丰富,都是V5的代码日志,功能及异常和日志追踪均通过logs_sy目录记录存储。
# 2.2.1、logs_sy日志存储规则
logs_sy下日志分为“当前运行时日志”和“历史记录日志”。
“当前运行时日志”就是存放于logs_sy根目录下,全部是.log文件,这些日志记录着当前正在运行的状态,按照修改日期降序排列,能看到最近什么日志文件有更新。
“历史记录日志”是通过文件夹存放,一天一个文件夹,按照日期存放。“当前运行时”的日志存储超过10M,就会被放入“历史记录日志”中。比如ctp.log存储满10M时,会被命名为ctp.log.2021-08-18.1.log放入2021-08-18文件夹(跟随当天日期存放)。
V8.2开始:如果重复的异常日志,会存储到error.log中,所以还需要取error.log文件。
# 4、根据关键字搜索日志的方法
场景:若客户上报了一个BUG:页面出现红字异常。没有提供报错的具体时分秒,只是知道是在某一天。
此时可以有多种方式追踪问题:
第一种,让客户重新试一下看是否报错,如果报错就取立刻报错时间点的日志分析。
第二种,由客户提供报错当天的全部日志,通常除了CAP、组织机构外,常规的错误日志都在ctp.log下,可以提取ctp.log下所有日志。
首先,确保自己已经安装了Notepad++软件,然后全选Log日志,鼠标右键>Edit with Notepad++
随后,在打开的Notepad++页面,输入红字异常关键字>选择查找所有打开文件>最后就能匹配到所有相关关键字。
# 5、日志级别动态调整
登录系统管理员账号,系统维护-系统调试设置-运行态改变日志级别
客户环境调试完成后记得重置默认日志级别,避免产生日志过多
# 6、系统LOG日志配置修改
OA系统全部LOG日志配置存储于\webapps\seeyon\WEB-INF\cfgHome\base目录下。主要修改log4j2_sys_running.xml和log4j2_sys_starting.xml两个文件的LOG配置,starting表示启动时打印的日志,running表示系统运行期打印的日志。
比如com.seeyon.ctp.event的日志级别默认是info,现在想修改为warn,则找到该日志配置,将level="info"改成level="warn"即可。
<!-- 事件通知日志-->
<AsyncLogger level="warn" additivity="false" name="com.seeyon.ctp.event">
<AppenderRef ref="event"/>
<AppenderRef ref="error"/>
</AsyncLogger>