我正在使用一段代码,我发现有点奇怪.我正在处理的代码是导入实用程序的一部分,该实用程序接收CSV文件并将数据导入数据库.
在代码中,我看到:
ImportUtils.printf("Validation started");
Run Code Online (Sandbox Code Playgroud)
当我研究这个方法时,它只是调用System.out.println:
public static void printf(String s) {
System.out.println(s);
}
Run Code Online (Sandbox Code Playgroud)
这有什么好处吗?这可能会成为一个问题吗?
Joh*_*her 15
考虑切换到完整的日志API,而不是创建一个简单的System.out.println包装器.有很多可用的(Commons Logging,Log4j,SLF4J等等).这些可以很容易地配置为控制台周围的简单包装器,可用于初始开发.在未来的道路上,这些可以修改为写入文件,发送电子邮件,写入数据库,......这些也提供了上下文信息(比如哪个类生成日志)非常有用,并且很难自己投入.
我认为这可能是一件好事 - 通过简单地改变ImportUtils.printf方法的实现,你可以自由地写入你想要的任何缓冲区.
有必要?我不知道,这可能是矫枉过正,但这种封装往往在需要时证明是一种福音.