我写了一个简单的Java程序(50-60行),以帮助我自己的开发。它是通过命令行调用的,基本上下载一些文件并解密。它不是任何产品的一部分。我认为它可能对我们组中的其他开发人员有用,因此我将其提交进行代码审查。回复意见是我需要将 System.out.println 改为 log4j。
输出包括每个下载文件的名称和完成时的消息。
这是否有点过头?我认为是这样的。
输出包括每个下载文件的名称和完成时的消息。
这是否有点过头?我认为是这样的。
看起来你正在寻求意见,这可能会被标记为关闭,但与此同时我同意,println非常适用。然而,调试和信息消息通常会发送到System.err而不是System.out。
如果你想让别人重用你的代码,你需要使用某种日志记录器。如果你要使用一个日志记录器,我建议使用SLF4J而不是log4j。这将允许一些下游开发者使用实现或绑定了SLF4J API(log4j、java.util.logging、logback等)的任何日志框架来使用你的代码。
如果你不在意有人重用你的代码,并且这是一个独立产品,那么是的,这可能是过度设计。
你打印到 System.out 的任何内容都会被发送到“标准输出”,你可以将其重定向到文件以进行进一步分析,但这非常不灵活。
如果使用 System.out,你无法过滤要发送到标准输出的内容... 所有内容都会被打印出来。通过使用任何日志框架,如 SLF4J、Commons Logging 或者 log4j,你可以设置不同的日志级别。
基本上,你不想看到每个调试消息。你可以使用记录器设置各种日志级别,例如 WARNING
、DEBUG
、INFO
。
可能有点过度,但具体情况而定。
当你说这个软件是为了自己的开发而制作的,但后来你将其发布给你的开发人员组时,实际上是在说这个软件最初有一个功能,现在又有了另一个功能。主要功能是为你服务,次要功能(也是最终功能)是为团队/社区服务。
*如果你的开发人员组有代码标准,我希望有的话,如果其中一个标准是使用log4j记录所有内容,那么你应该遵循这些标准。