2012-01-24 25 views
4

我寫了一個小小的java程序(50-60行)來幫助自己開發。從命令行調用,基本上會下載一些文件並解密它們。它不是任何產品的一部分。我認爲它可能對我的小組中的其他開發人員有用,所以我提交了代碼審查。評論回來說,我需要System.out.println -s更改爲log4j。Log4j與println簡單方便程序

輸出包括下載每個文件並當它完成消息的名稱。

這是大材小用?我覺得是這樣的。

+0

@Hemant Metalia:這種格式是否正常? –

+0

@ZiyaoWei我只是想突出重點在 –

+0

這個問題可能更適合程序員.stackexchange.com –

回答

2

看來你要求的意見,這可能會得到標記爲關閉,但同時我同意,的println是完全適用的。但是,調試和信息消息通常發送到System.err而不是System.out。

1

如果您希望人們重複使用您的代碼,您將需要使用某種記錄器。如果你打算使用記錄器,我建議使用SLF4J而不是log4j。這將允許一些下游開發人員使用您的代碼來使用他們想要實現的任何日誌框架,或者對SLF4J API(log4j,java.util.logging,logback等)進行綁定。

如果你不關心任何人重用你的代碼,這是一個獨立的產品,那麼是的,它可能是矯枉過正。

您打印到System.out
+0

+1指出重用因子。但@ user1166233,絕對使用SLF4J上的Log4J。 – Perception

+0

您是否知道任何使用stdout和stderr日誌記錄的命令行程序?打印幾個文件名和完成信息似乎沒有意義。我不指望任何人使用這個程序,就像我寫的一樣。我只是認爲我可以拯救其他人從頭開始重寫類似的東西。 – user1166233

0

什麼東西都可以進入「標準輸出」,你可以將其重定向到供進一步分析文件,但是,這是非常不靈活。

如果您使用System.out,則無法過濾標準輸出內容......將打印所有內容。通過使用任何日誌框架,如SLF4J,Commons Logging或者您可以使用log4j,您可以設置不同的日誌級別。

基本上你不想看到每個調試消息。您可以在記錄器的幫助下設置各種日誌記錄級別,如WARNING,DEBUG,INFO

+0

確定你可以過濾到System.out的內容。這就是過濾器所做的,從標準輸入讀取並寫入標準輸出。 –

+0

我的意思是'loggers'更方便。就像如果我改變日誌級別來警告我的調試和信息消息不會再顯示。所以,現在我有更多的控制權我的日誌記錄。 – RanRag

+0

行,理解。我在適用的地方使用日誌記錄,但對於簡單的命令行腳本,通常更喜歡stdout/stderr。 –

0

大概是(矯枉過正),但要看情況。

當你說軟件是爲你自己的開發而製作的,但隨後你將它發佈給你的開發團隊的時候,你實際上是說軟件原來有一個功能,現在又有另一個功能。作爲主要功能的是你和次要(和最終功能)爲羣體/社區服務。

* 如果你的開發小組的有代碼的標準,我當然希望有,如果標準之一是使用log4j的記錄的一切,是通過各種手段,你應該用標準去。 *