日志问题

原创 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)));
 
}
问题虽然解决了,但是一个项目里对底层框架,公共类还是由专人或是一个小组去管理维护,不要在开发的业务交易里由开发人员去涉及,要形成良好的开发规范,除了加强监管外,开发人员自身也要有这样的意识。

RabbitMQ问题汇总

日志   开启日志记录插件(可通过管理界面查看) rabbitmq-plugins enable rabbitmq_tracing   rabbitmqctl trace_on     打开 trac...
  • u014308482
  • u014308482
  • 2016年10月27日 17:05
  • 2737

项目日志在项目管理中的应用

1、前言 软件项目的特殊性使其开发难度越来越大,各企业、团队面临的风险也越来越多,这直接导致目前国内软件项目成功率较低。对于目前项目中存在的问题,影响比较大的主要有以下几方面: 1、计划及过程跟踪...
  • guanhui1997
  • guanhui1997
  • 2016年07月06日 09:41
  • 3803

Python多进程记录日志

用gevent(或封装了gevent的gunicore)启动python进程,会出现多个独立进程同时写一个日志文件, 可以观察到有日志部分丢失:一个进程日志没写完,另一个进程把日志覆盖在同一行的后面...
  • yongche_shi
  • yongche_shi
  • 2015年10月28日 18:23
  • 1436

处理数据库日志过大问题

  • 2017年10月30日 13:58
  • 1KB
  • 下载

Oracle归档日志空间不足引发的问题及归档日志的检测与删除

  • 2017年06月04日 22:14
  • 4KB
  • 下载

Websphere 中生成日志问题

  • 2008年01月08日 15:23
  • 117KB
  • 下载

Tomcat日志问题

  • 2014年03月25日 15:29
  • 29KB
  • 下载

sybase日志问题知识普及

  • 2012年03月08日 18:41
  • 73KB
  • 下载

彻底解决 Tomcat 5 下文字乱码问题 - JSP日志 - ※一路风尘※

  • 2010年01月08日 10:57
  • 117KB
  • 下载

解决SQL数据库日志已满的问题

  • 2011年08月12日 14:35
  • 15KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:日志问题
举报原因:
原因补充:

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