Eclipse插件中的SLF4J登錄

一直都在使用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

  1. 選擇“幫助/安裝新軟件...”。
    Eclipse /幫助/安裝
  2. 添加P2存儲庫URL并安裝“ slf4j-api”-您可以直接將步驟1中的文件夾與文件URL一起使用,例如:“ file:/ pathtoyour / p2-repository /”。 Instal Slf4J API
  3. 將新安裝的“ slf4j.api”添加到您的MANIFEST.MF。 MANIFEST.MF中的依賴項
  4. 照常開始使用SLF4J登錄代碼。

階段2:生產

這描述了自定義插件的用戶必須完成的任務才能開始使用Log4J進行日志記錄。 以下假設您的自定義插件已安裝。

步驟1:在Eclipse IDE中安裝日志庫

  1. 選擇“幫助/安裝新軟件...”。 Eclipse /幫助/安裝
  2. 從Eclipse更新站點安裝“ Equinox目標組件”。 安裝Equinox目標組件
  3. 添加P2存儲庫URL并安裝以下插件:
    • Apache Log4j
    • OPS4J Pax ConfMan –屬性加載器
    • OPS4J Pax日志記錄–API
    • OPS4J Pax日志記錄-服務

    安裝日志庫

步驟2:配置PAX日志記錄

  1. 在“ eclipse.ini”中將日志配置的位置設置為“ vmarg '
    -vmargs
    -Xms40m
    -Xmx512m
    -Dbundles.configuration.location=<config-dir>
    

  2. 在上面的“ config-dir”中創建一個名為“ services”的文件夾。
  3. 在“服務”中創建名為“ 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日志記錄

  1. 打開“控制臺”視圖。 顯示控制臺視圖
  2. 選擇“主機OSGI控制臺”。 選擇OSGI控制臺
  3. 啟動以下捆綁包:
    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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/370123.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/370123.shtml
英文地址,請注明出處:http://en.pswp.cn/news/370123.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CSS(四)

css元素溢出 當子元素的尺寸超過父元素的尺寸時&#xff0c;需要設置父元素顯示溢出的子元素的方式&#xff0c;設置的方法是通過overflow屬性來設置。 overflow的設置項&#xff1a; 1、visible 默認值。內容不會被修剪&#xff0c;會呈現在元素框之外。2、hidden 內容會被修…

mysql排名

轉載自思心思危http://www.cnblogs.com/zengguowang/p/5541431.html 一、sql1&#xff5b;不管數據相同與否&#xff0c;排名依次排序&#xff08;1,2,3,4,5,6,7.....&#xff09;&#xff5d; SELECTobj.user_id,   obj.score,  rownum : rownum 1 AS rownum FROM(SELECT…

python中變量名后的逗號_深入淺析python變量加逗號,的含義

逗號,用于生成一個長度為1的元組>>> (1)1>>> (1,)(1,)>>> 1,(1,)因此需要將長度為1的元組中元素提取出來可以用,簡化賦值操作>>> a(1,)>>> ba>>> b(1,)>>> b,a>>> b1最后print打印變量加,實現連續打印…

廣告的顯示和關閉

app或游戲的主頁顯示廣告頁面&#xff0c;實現方式&#xff1a; public class MainActivity extends Activity implements View.OnClickListener{private Button btnShowAd;private RelativeLayout layoutAd;Overrideprotected void onCreate(Bundle savedInstanceState) {supe…

android簽到功能模塊,基于android的課堂簽到系統.doc

基于android的課堂簽到系統本科畢業論文(設計)題 目 基于Android的課堂簽到系統學生姓名 XXX指導教師 XX學 院 信息科學與工程學院專業班級 計算機科學與技術0908班完成時間 2013年5月 摘 要在大學課堂中&#xff0c;簽到問題一直困擾著老師和同學們。傳統課堂簽到的手段大多是…

Java EE 7社區調查結果!

在JSR 342下可以繼續進行Java EE 7的工作。一切進展順利&#xff0c;Java EE 7現在處于“初稿審查”階段。 在11月初&#xff0c; Oracle發布了一個有關即將推出的Java EE 7功能的小型社區調查 。 昨天結果公布了。 超過1,100名開發人員參加了調查&#xff0c;并且幾乎對每個問…

CSS(三)

CSS盒子模型 盒子模型解釋 元素在頁面中顯示成一個方塊&#xff0c;類似一個盒子&#xff0c;CSS盒子模型就是使用現實中盒子來做比喻&#xff0c;幫助我們設置元素對應的樣式。盒子模型示意圖如下&#xff1a; 把元素叫做盒子&#xff0c;設置對應的樣式分別為&#xff1a;盒…

一道關于運行順序題

function foo(){   getName function(){console.log(1)}   return this } foo.getName function(){console.log(2)} foo.prototype.getName function(){console.log(3)} var getName function(){console.log(4)} function getName(){console.log(5)} foo.getName()//2 …

android+小米文件管理器源碼,小米開源文件管理器MiCodeFileExplorer-源碼研究(2)-2個單實例工具類...

從本篇開始&#xff0c;講解net.micode.fileexplorer.util工具包中的類。這個包下的類&#xff0c;功能也比較單一和獨立。很多代碼的思想和實現&#xff0c;可以用于JavaWeb和Android等多種環境中。一、單實例活動管理器ActivitiesManager一個單實例的活動管理器&#xff0c;從…

移動優先的響應式布局

前面的話 隨著移動互聯網的興起&#xff0c;不同設備的分辨率相差較大&#xff0c;如果在不同的設置上顯示同一個頁面&#xff0c;則用戶體驗差。響應式網頁設計是一種方法&#xff0c;使得一個網站能夠兼容多個終端&#xff0c;而不用為每個終端制作特定的版本。它使得一個網站…

python中英文字符和中文字符存儲長度不同_Django如何正確截取中英混合字符串及表單中限制中文字符中長度...

中文字符和英文字符所占的字節長度是不一樣&#xff0c;一個是2個字節&#xff0c;一個是1個字節&#xff0c;這給我們用英文的web框架開發中文app帶來了麻煩。比如Django自帶過濾器truncatewords并不支持截取中文&#xff0c;另外模型中CharField中的max_length選項用于限制中…

使用RESTful客戶端API進行GET / POST

互聯網上有很多如何使用RESTful Client API的東西。 這些是基礎。 但是&#xff0c;盡管該主題看起來微不足道&#xff0c;但仍然存在一些障礙&#xff0c;尤其是對于初學者而言。 在這篇文章中&#xff0c;我將嘗試總結我的專業知識&#xff0c;以及我如何在實際項目中做到這…

南昌互聯網行業協會籌辦者祝真和華罡團隊-2014年12月江西IDC排行榜

&#xfeff;&#xfeff;他出自軍營&#xff0c;擁有一身正氣。 他在南昌創業&#xff0c;立意卓越。 從站點開始、到微營銷、到線上教育&#xff0c;全面開花。 他在朋友圈看到不對的內容&#xff0c;就會即時批評。 他對朋友&#xff0c;又是很的和藹可親。 他就是南昌華罡網…

Linux下查看某個進程的網絡帶寬占用情況

說明&#xff1a; 1、可能查看某個進程的帶寬占用需要明確知道PID、進程名字、發送速度、接收速度。 2、很遺憾&#xff0c;在Linux原生的軟件中沒有這樣的一款&#xff0c;只能額外裝&#xff0c;最符合以上的情況就只有nethogs。 3、nethogs可以指定網卡&#xff0c;但是不能…

android中的add方法,Android入門之addWindow

前面說到&#xff0c;應用程序添加窗口時&#xff0c;會在本地創建一個ViewRoot&#xff0c;然后通過IPC(進程間通信)調用WmS的Session的addWindow請求WmS創建窗口&#xff0c;下面來看看addWindow方法。addWindow方法定義在frameworks/base/services/java/com.android.server.…

CSS屬性速查表

前面的話 本文將按照布局類屬性、盒模型屬性、文本類屬性、修飾類屬性這四個分類&#xff0c;對CSS常用屬性進行重新排列&#xff0c;并最終設置為一份stylelintrc文件 布局類 1、定位 positionz-indextopbottomleftright 2、浮動 floatclear 3、多列布局 columnscolumns-width…

我應該使用32位還是64位JVM?

這是我在企業軟件開發生涯中多次遇到的問題。 我不得不每隔一段時間就提供有關配置特定新環境的建議。 而且&#xff0c;很多時候&#xff0c;手頭的問題與“我應該使用32位或64位JVM”有關。 老實說&#xff0c;一開始我只是擲硬幣。 而不是給出合理的答案。 &#xff08;對不…

python安裝pyecharts清華_基于Python安裝pyecharts所遇的問題及解決方法

最近學習到數據可視化內容&#xff0c;老師推薦安裝pyecharts&#xff0c;于是pip install 了一下&#xff0c;結果...掉坑了&#xff0c;下面是我的跳坑經驗&#xff0c;如果你有類似問題&#xff0c;希望對你有所幫助。第一個坑:這個不難理解&#xff0c;缺少pyecharts-jupyt…

C語言內存分配

C語言內存分配 C語言的內存分配主要有5個區域&#xff1a; 1、棧區&#xff1a;在運行函數時&#xff0c;函數內的局部變量&#xff08;不包含static變量&#xff09;、函數返回值的存儲單元在棧區上創建。函數運行結束時這些存儲單元自己主動被釋放。棧區內存分配運算內置于處…

在Ajax方式產生的浮動框中,點擊選項包含某個關鍵字的選項

#!usr/bin/env python #-*- coding:utf-8 -*- """ author: sleeping_cat Contact : zwy24zwy163.com """ #在Ajax方式產生的浮動框中&#xff0c;點擊選項包含某個關鍵字的選項 #通過模擬鍵盤下箭頭進行選擇懸浮框選項from selenium imp…