日志问题

原创 2007年10月02日 22:09:00
 前些日子,凌晨被叫回项目,因为项目在更新程序后,在日志输出时老是重复很多条相同的输出,导致日志文件很快的满了。首先怀疑是log4j的配置有问题,在生产环境上拿到的配置文件上来看,并没有问题,即使是配置有问题导的的重复也只有有条重复而已,不会有上百条,几百条重复。从拿下来的日志文件上看,有很多是关于操作EXCEPTION_LOG表时出错,于是从数据库操作类上查找原因,怀疑可能是在交易里操作数据出错,于是记录时,操作了EXCEPTION_LOG表时又出错,于嵌套循环出错,这可以解释为什么日志里有这么多的操作EXCEPTION_LOG表出错的原因,但再仔细看程序,对操作EXCEPTION_LOG表出错是有判断的,不会出现嵌套循环出错,而且这个程序已应用多年,这次上线并没有更新。最后,从输出的日志上来,结合配置,发现输出的内容并没有配置,所以怀疑配置被动态修改了,于是从上线的程序上查找,发现在一个交易里,有开发人员直接使用log4j的API来输出日志,有对应的交易类里有这样的代码:
{
BasicConfigurator.configure();
}
每次调用该交易时,实是实例化交易类,这就导致每次都会进行一次log4j的默认的输出配置,增加一个新的layout,这就导致有多个输出配置,每次有log4j的输出时,都会根据输出 配置进行输出,这也就找到了几百条重复输出的原因的了,如果交易再被多调用几次,重复数还会更多
在log4j的BasicConfigurator.configure()源码里是这新的:
static
  public
  void configure() {
   
Logger root = Logger.getRootLogger();
   
root.addAppender(new ConsoleAppender(
 new PatternLayout(PatternLayout.TTCC_CONVERSION_PATTERN)));
 
}
问题虽然解决了,但是一个项目里对底层框架,公共类还是由专人或是一个小组去管理维护,不要在开发的业务交易里由开发人员去涉及,要形成良好的开发规范,除了加强监管外,开发人员自身也要有这样的意识。
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Django多进程日志文件问题

Django多进程日志文件问题最近使用Django做一个项目。在部署的时候发现日志文件不能滚动(我使用的是RotatingFileHandler),只有一个日志文件。 查看Log发现一个错误消息:P...

SQL 解决日志库膨胀问题

  • 2011-07-07 17:56
  • 838B
  • 下载

Tomcat日志问题

  • 2014-03-25 15:29
  • 29KB
  • 下载

Tomcat服务器记录日志(Logger)出现中文乱码问题解决

开始接触服务器AliyunECS配置有段时间了,Logger输出中文乱码问题困扰着,在开发环境下不存在这个问题。 在网上搜索过解决方法,方法各种各样。最终推荐一种,笔记如下: 打开Tomcat安装目录...

sybase日志问题知识普及

  • 2012-03-08 18:41
  • 73KB
  • 下载

Log4J2在Web工程下日志无法写入文件的问题

接触Log4J不久,之前在Java工程测试学习的,一切正常。 前几天在做一个JSP的案子,Web工程下,同样的配置文件,却写不到文件。 在控制台日志正常输出。 Web工程下,在Java类main...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)