如何后处理日志?

时间:2018-08-21 21:04:31

标签: java performance logging log4j slf4j

我在日志记录应用程序中使用绑定到SLF4的{​​{1}}。我想测量多次运行的方法的性能(总经过时间)。因此,我设置了类似

log4j

记录经过的时间。由于此方法将运行多次,因此我想累积所有记录的long startTime = System.currentTimeMillis(); <Execution> long elapsedTime = System.currentTimeMillis() - startTime; logger.info(elapsedTime);

看来我可以实现的一种方法是将日志输出到一个单独的文件中,并编写一个后处理代码,以手动添加数字。但是,这将迫使应用程序写入日志文件(我们可能不想这样做),并在业务逻辑之上编写用于处理日志的单独逻辑。我只是想知道是否有更简单的方法来解决这个问题?

顺便说一句,我知道AOP,但我们的团队目前反对AOP。

1 个答案:

答案 0 :(得分:0)

如果您只想打印所有elapsedTime及其计数的总和,则可以在实例级别拥有两个AtomicLong(如果是多线程应用程序,否则也可以使用long)。

两个实例变量:

color

在您的方法结尾处:

<div ng-app="app" ng-controller="main">
   <tempdir color="selectedColor"></tempdir>
</div>

var app = angular.module('app', []);

app.directive("tempdir", function() {
  return {
    template: "<div id={{color}}> ... </div>",
    scope: {
      color: "="
    }
  };
});

app.controller('main', function($scope) {
  $scope.selectedColor = 'red';
  console.log($scope.selectedColor);
});