有条件记录信息的最有效方法是什么?

问题描述

我真的不知道从应用程序记录信息的最佳方法是什么。我见过的大多数程序都是这样编写的:

while(true) {
   //code
   if(debug == true) {
      log(info);
   }
end

我想过使用两个单独的循环,如下所示:

if(debug == true) {
   while(true) {
      //code
      log(info);
   }
else {
   while(true) {
      //code
   }
}

但是这有一个问题,那就是以后要做的工作要翻倍。我认为最好的最后一种解决方案是使用lambda表达式之类的东西,然后传递一个空的实现以供使用,而无需进行调试:

public void loop(Debug debug) {
   while(true) {
      //code
      debug.log(info)
   }
}

public static void main(String[] args) {
   loop(d -> {
      //print to file,command line,etc. OR do nothing
   });
}

在问题或意想不到的后果方面的任何澄清将不胜感激。 预先感谢!

解决方法

不要尝试发明自行车。使用现有的日志记录框架并遵循其准则。

无论您怎么想,您都需要克服已经解决的相同问题。

例如https://logging.apache.org/log4j/2.xhttp://www.slf4j.org/