java - 有条件地记录信息的最有效方法是什么?
问题描述
我真的不知道从应用程序记录信息的最佳方式是什么。我见过的大部分内容都是这样编程的:
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/
推荐阅读
- javascript - 如何在打开modelDialog之前验证表单
- vba - 计算一个值在列中出现的次数并将该值返回到不同的工作表
- http - 如何在 Apollo GraphQl 中传递多个标头
- c# - 如何将此表达式转换为 LINQ
- javascript - toDoList 和搜索添加的项目后的问题,当输入为空时应该回到上一个索引位置
- powershell - 使用 Powershell 枚举 Azure 存储帐户
- angular - Dart Web “传递库具有此平台不支持的 sdk 依赖项”
- pandas - 滚动日期范围内的价格变化百分比
- reactjs - 侧边栏中的动态和非动态路由
- javascript - 带有 Webpack 3.7 的 Angular 8 渲染速度极慢