我正在编写一个命令行工具,它可以对我们的服务器执行一些测试并将输出报告给屏幕。我目前使用log4j的将文本打印到控制台的最佳技术
打印到屏幕和日志文件。
但是,我想知道是否有更好的技术来管理一个类的所有打印,而不是将“打印”命令分散在我的代码中。
例如
logger.info("Connecting to environment: " + envName);
if (cmd.hasOption(OPTION_CHECK_PRIMARY)) {
//print primary leg
String primaryLegName = env.getPrimaryLeg().getLegName();
String message = "is primary";
logger.info(String.format("%s : %-4s %s", envName, primaryLegName, message));
}
这是现在散布在我所有代码中的输出示例。
难道是最好有一个处理所有的打印格式化类?
什么是创建它的最佳方法?
你觉得像什么:
Formatter pf = new PlainFormatter();
...
pf.printEnvironment(envName);
if (cmd.hasOption(OPTION_CHECK_PRIMARY)) {
//print primary leg
String primaryLegName = env.getPrimaryLeg().getLegName();
pf.printPrimary(envName, primaryLegName);
}
嗨,Amir,我现在正在使用log4j,正如你所说。但是,我不想从代码的不同部分进行打印,但我宁愿有一个处理打印的单个/外部类。这样,如果我想改变显示输出的方式,我不必去查找所有类中的打印语句。 – Alessandro 2010-10-25 19:01:58
你打算在未来改变什么?无论如何,是不是通过属性文件来控制格式和记录级别?是否有理由仅抽出一行函数调用? – 2010-10-26 02:01:52