2009-06-19 93 views
7

我正在Eclipse中運行一些JUnit測試,並且我的代碼正在使用java日誌記錄API生成XML日誌文件。 (java.util.logging中)。除了閱讀原始XML之外,是否有一種簡單的方法可以在Eclipse中查看此XML日誌輸出?具體而言,我希望能夠輕鬆查看不同日誌消息來自哪些線程。如何在Eclipse中查看java日誌文件

回答

0

我看不出Eclipse如何知道你的線程。如果它是XML,則需要編寫一個解析器,它可以使用XPath找到您的線程消息並將其打印出來。但這取決於你 - Eclipse無法讀懂你的想法。

您將不得不找到一個XSL-T樣式表,它可以將log4j生成的XML流取出並取出所需的線程。

+0

筆者的線程是的java.util.logging輸出的一部分。請參閱http://java.sun.com/j2se/1.4.2/docs/guide/util/logging/overview.html#2.4 – 2009-06-19 01:04:03

1

我一直希望爲java.util.logging/Eclipse組合找到類似Apache Chainsaw的東西,即Eclipse中的一個日誌查看器,它監聽端口和直接寫入該端口的java.util.logging.Handler實現。但我還沒有發現這樣的事情,也沒有解決寫一個。到目前爲止,我只是使用合適的純文本格式登錄到控制檯。不優雅,沒有方便的過濾選項,但它可以完成這項工作。編寫自己的自定義格式化程序並不難。

在Eclipse的Test and Performance Tools Platform Project(名稱甚至比首字母縮寫詞更糟糕)中分析日誌文件有一些支持。我從來沒有嘗試過,但它可能對你有用。

+0

Peter,請參閱我在SLF4J/Logback上的說明。雖然Thorbjørn指出在使用當前版本的logback時存在一個錯誤(Ceki表示他們正在開發一個解決方案),但它正是這樣做的。 – 2009-06-19 16:41:21

+0

我更喜歡一些不會將依賴項添加到我的生產代碼中的東西。特別是SLF4J已經讓我在點發布之間做出了不兼容的API更改,從而導致了我的一個基於Maven的項目間接依賴的問題。 java.util.logging可能並不完美,但我仍然沒有看到由替代方案引入的額外成本和風險的理由。 – 2009-06-25 08:05:15

1

剛上側,在實時查看日誌文件的一個很好的工具是baretail(基本上是Windows上的尾-f),但是可以設置以突出的顏色,可以真正幫助某些模式。你可以找到一個免費版本here

+0

感謝您的鏈接 – akf 2009-06-19 01:41:03

1

根據你想要做什麼,你可能只需要一個良好的日誌記錄設置爲您的日誌子系統?

我最近使用的一個框架使用SLF4J登錄,通過提供以下log4j的配置我能看到哪些線程輸出什麼:

log4j.rootLogger = trace, default 
log4j.appender.default = org.apache.log4j.ConsoleAppender 
log4j.appender.default.layout = org.apache.log4j.PatternLayout 
log4j.appender.default.layout.ConversionPattern = %-4r [%t] %-5p %c %x - %m%n 

在我來說,我得到類似以下的輸出當我運行我的junit測試時,eclipse中的Console選項卡。

0 [pool-1-thread-1] INFO com.example.BaseTest - Server listening on port 9090 
35 [NioProcessor-6] INFO org.apache.mina.filter.logging.LoggingFilter - CREATED 
35 [NioProcessor-1] INFO org.apache.mina.filter.logging.LoggingFilter - CREATED 
4

我一直在使用SLF4J日誌API再加上Logback日誌實現。 SLF4J可以配置爲將java.util.logging,log4j,jakarta公共日誌記錄和SLF4j API中的日誌消息映射到通用中間表單。另一方面,消息可以通過java.util.logging,log4j或Logback生成。這是一種運行良好的靈活方法,特別是當您的組件使用不同的日誌記錄API時。

Logback的一個好處是您可以配置它將日誌消息的副本發送到Eclipse plug-in。該插件允許您以各種方式查看和過濾日誌文件。消息包含生成它們的線程,所以它聽起來像是你應該檢查的東西。

2

我認爲你正在尋找我正在尋找的相同的東西。我找到了UtilLogger4E,但是我開始了我自己的項目(EDevTools LogViewer),因爲它有一些缺失的功能,而不是開源的。

它能夠從文件或可配置套接字讀取Java Util日誌記錄XML日誌,按照級別在表中顯示它們,並且一次可以顯示多個日誌(通過多個視圖實例)。

Java Util Logging具有將日誌發送到套接字(SocketHandler)的內置功能,它只能由配置文件設置。

你可以看看LogViewer中的:如果你想使用的不是基於Eclipse的日誌查看器http://sourceforge.net/projects/edevtools/

2

,我建議你OtrosLogViewer。我可以導入java.util.logging XML格式和SimpleFormat。

免責聲明:我OtrosLogViewer