一直都在使用Maven和純Java庫進行開發,我從沒想過在開發Eclipse插件時發出一些日志語句可能會成為問題。 但是,在Eclipse開發人員的想象中,一切似乎總是在Eclipse環境中,而Eclipse宇宙之外則什么都沒有。
如果您使用Google搜索上述標題,您會發現的第一篇文章是有關“平臺日志記錄工具”的文章。 但是第三庫呢? 他們不能使用基于Eclipse的日志框架。
在我的庫中,我使用SLF4J API,讓用戶自己決定要使用哪種日志記錄實現(Log4J,Logback,JDK)。 這正是我要在Eclipse中執行的操作。 很難確切地知道該怎么做,但這是這個難題的一部分。
階段1:開發
這描述了自定義插件開發階段的步驟。
步驟1:將您的庫放入P2存儲庫
您要在Eclipse中使用的所有內容都必須從P2存儲庫中安裝。 但是我使用的大多數庫都在Maven存儲庫中。 據我所知,沒有像“ Maven Central”這樣的主P2存儲庫,而且我在P2存儲庫中找到的所有庫都相當老。 因此,您必須自己創建一個。
幸運的是,有一個名為p2-maven-plugin的Maven 插件可以將您所有的Maven JAR轉換為單個P2存儲庫。 您可以將插件上傳到網站的文件夾,也可以直接從本地硬盤安裝。
對于此示例,您將需要以下庫:
- org.slf4j:slf4j-api:1.6.6
- org.slf4j:slf4j-log4j12:1.6.6
- log4j:log4j:1.2.17
- org.ops4j.pax.logging:pax-logging-api:1.7.0
- org.ops4j.pax.logging:pax-logging-service:1.7.0
- org.ops4j.pax.confman:pax-confman-propsloader:0.2.2
格式“ groupId:artifactid:version”與“ p2-maven-plugin”所使用的格式相同。 要跳過此步驟,您還可以使用http://www.fuin.org/p2-repository/ 。
步驟2:在Eclipse IDE中安裝SLF4J API
- 選擇“幫助/安裝新軟件...”。
- 添加P2存儲庫URL并安裝“ slf4j-api”-您可以直接將步驟1中的文件夾與文件URL一起使用,例如:“ file:/ pathtoyour / p2-repository /”。
- 將新安裝的“ slf4j.api”添加到您的MANIFEST.MF。
- 照常開始使用SLF4J登錄代碼。
階段2:生產
這描述了自定義插件的用戶必須完成的任務才能開始使用Log4J進行日志記錄。 以下假設您的自定義插件已安裝。
步驟1:在Eclipse IDE中安裝日志庫
- 選擇“幫助/安裝新軟件...”。
- 從Eclipse更新站點安裝“ Equinox目標組件”。
- 添加P2存儲庫URL并安裝以下插件:
- Apache Log4j
- OPS4J Pax ConfMan –屬性加載器
- OPS4J Pax日志記錄–API
- OPS4J Pax日志記錄-服務
步驟2:配置PAX日志記錄
- 在“ eclipse.ini”中將日志配置的位置設置為“ vmarg
'
-vmargs -Xms40m -Xmx512m -Dbundles.configuration.location=<config-dir>
- 在上面的“ config-dir”中創建一個名為“ services”的文件夾。
- 在“服務”中創建名為“ org.ops4j.pax.logging.properties”的Log4J屬性。
log4j.rootLogger=INFO, FILE log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=<path-to-your-log> /example.log log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss,SSS} [%t] %-5p %c %x - %m%n log4j.logger.your.package=DEBUG
步驟3:激活PAX日志記錄
- 打開“控制臺”視圖。
- 選擇“主機OSGI控制臺”。
- 啟動以下捆綁包:
start org.eclipse.equinox.cm start org.ops4j.pax.logging.pax-logging-api start org.ops4j.pax.logging.pax-logging-service start org.ops4j.pax.configmanager
現在,您應該能夠在配置的“ example.log”文件中看到您的日志語句。
步驟4:更改配置
如果要更改“ org.ops4j.pax.logging.properties”中的配置,只需在OSGI控制臺中重新啟動PAX Configmanager:
stop org.ops4j.pax.configmanager
start org.ops4j.pax.configmanager
祝您伐木愉快!
參考:來自A Java Developer's Life博客的JCG合作伙伴 Michael Schnell的SLF4J登錄Eclipse插件 。
翻譯自: https://www.javacodegeeks.com/2013/01/slf4j-logging-in-eclipse-plugins.html