我正在編寫一個命令行工具,它可以對我們的服務器執行一些測試並將輸出報告給屏幕。我目前使用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