问题描述
我真的不知道从应用程序记录信息的最佳方法是什么。我见过的大多数程序都是这样编写的:
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.x 或http://www.slf4j.org/