linux查看 idt日志,實現RCP的日志管理

做插件開發的都知道當應用跑不起來了就去看看workspace里的.log文件,錯誤信息很詳細,那樣解決問題就方便多了,這個功能很好,所以學習了下,和大家分享下,實現的原理也就一行代碼

Java代碼 a4c26d1e5885305701be709a3d33442f.png

Platform.getLog(Platform.getBundle(bundleID)).log(

newStatus(serverity,?bundleID,?code,?message,?t));

Platform.getLog(Platform.getBundle(bundleID)).log(

new Status(serverity, bundleID, code, message, t));

原理知道了,那么怎么樣得到像eclipse生成.log里的那些效果呢?

runtime包下有個Status類它繼承IStatus,大家可以去看看它的源碼,我說到它的原因就是因為它包含了eclipse的warning,error以及info,這三類log都是最常用的,下面我也不啰嗦了,貼代碼

Java代碼 a4c26d1e5885305701be709a3d33442f.png

packagecom.bjgtt.msap.workbench.utilities;

importorg.eclipse.core.runtime.Platform;

importorg.eclipse.core.runtime.Status;

publicclassLogUtil?{

publicstaticvoidlogError(Throwable?t)?{

logError(null,?t.getMessage(),?t);

}

publicstaticvoidlogError(String?bundleID,?Throwable?t)?{

logError(bundleID,?t.getMessage(),?t);

}

publicstaticvoidlogError(String?bundleID,?String?message,?Throwable?t)?{

log(bundleID,?message,?t,?Status.ERROR,?Status.OK);

}

publicstaticvoidlogWarning(String?message)?{

log(null,?message,null,?Status.WARNING,?Status.OK);

}

publicstaticvoidlogError(String?bundleID,?String?message)?{

logError(bundleID,?message,null);

}

publicstaticvoidlog(String?bundleID,?String?message,?Throwable?t,intserverity,intcode)?{

if(bundleID?==null)?{

bundleID?=?Activator.getDefault().getBundle().getSymbolicName();

}

Platform.getLog(Platform.getBundle(bundleID)).log(newStatus(serverity,?bundleID,?code,?message,?t));

}

}

package com.bjgtt.msap.workbench.utilities;

import org.eclipse.core.runtime.Platform;

import org.eclipse.core.runtime.Status;

public class LogUtil {

public static void logError(Throwable t) {

logError(null, t.getMessage(), t);

}

public static void logError(String bundleID, Throwable t) {

logError(bundleID, t.getMessage(), t);

}

public static void logError(String bundleID, String message, Throwable t) {

log(bundleID, message, t, Status.ERROR, Status.OK);

}

public static void logWarning(String message) {

log(null, message, null, Status.WARNING, Status.OK);

}

public static void logError(String bundleID, String message) {

logError(bundleID, message, null);

}

public static void log(String bundleID, String message, Throwable t, int serverity, int code) {

if (bundleID == null) {

bundleID = Activator.getDefault().getBundle().getSymbolicName();

}

Platform.getLog(Platform.getBundle(bundleID)).log(new Status(serverity, bundleID, code, message, t));

}

}

大家看到了上面的類中有六個方法,歸根到底都是調的最下面的方法,所以代碼就變得簡單多了,為大家介紹這些方法的使用吧:

首先就是logError(Throwable t)方法:

Error很顯然就是捕獲的異常信息了

logError(String bundleID, Throwable t) 有上面的方法了,這個方面就用不著了

接著就是logError(String bundleID, String message, Throwable t)

方法了

用了組裝錯誤消息

logWarning(String message) :

看名字大家就知道是告警日志了,最常用的地方就是你需要得到一個對象的實例,而這個實例為null那么你就可以使用這個方法來記錄日志了

logError(String bundleID, String message) :

插件錯誤信息,bundleID就是你的插件ID

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

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

相關文章

電腦技巧:電腦內存不足解決小技巧

熟悉電腦硬件的朋友們都知道,內存相對于電腦來說是一個相當重要的部件,內存屬于CPU的“工作室”,因為電腦所有運行的程序都是在內存中運行,它決定了多少、多大的程序能即時運行,如若執行的應用程序過大或者過多就會導致…

前端:分享一些實用的JS代碼片段

今天給大家分享一些實用的JS代碼片段,有需要的朋友歡迎收藏!1、獲取瀏覽器的版本function getBrowser() {var UserAgent navigator.userAgent.toLowerCase();var browserInfo {};var browserArray {IE: window.ActiveXObject || "ActiveXObject&…

20145206 《信息安全系統設計基礎》第十二周學習總結

20145206 《信息安全系統設計基礎》第十二周學習總結 本周學習目標 1、第九周代碼檢查 2、第十周代碼檢查 3、第十一周代碼檢查 博客鏈接 20145206 《信息安全系統設計基礎》第九周學習總結20145206 《信息安全系統設計基礎》第十周學習總結20145206 《信息安全系統設計基礎》第…

linux數據同步技術比較,linux下實現web數據同步的四種方式(性能比較)教程.docx

linux下實現web數據同步的四種方式(性能比較)教程實現web數據同步的四種方式1、nfs實現web數據共享2、rsync inotify實現web數據同步3、rsyncsersync更快更節約資源實現web數據同步4、unisoninotify實現web數據雙向同步一、nfs實現web數據共享?nfs能實現數據同步是通過NAS(網絡…

lambda創建線程

Testpublic void add() {//方式一Thread thread1 new Thread("ttt") {Overridepublic void run() {System.out.println("1");}};thread1.start();//方式二Runnable runnable new Runnable() {Overridepublic void run() {System.out.println("2&quo…

電腦技巧:F5稱為萬能鍵,看了才知道它的強大

目錄 NO.1 瀏覽器刷新 NO.2 PPT快速放映 NO.3 Word快速定位 NO.4 Excel快速定位 NO.5 記事本錄入當前時間 今天給大家介紹一個經常被大家忽視的但非常實用的快捷鍵F5具體有哪些用法。 ★萬能快捷鍵★ F5 NO.1 瀏覽器刷新 刷新功能 F5最常用的就是網頁刷新功能,相比這…

學號20145220《信息安全系統設計基礎》第12周學習總結

學號20145220《信息安全系統設計基礎》第12周學習總結 教材學習內容總結 學號20145220《信息安全系統設計基礎》第11周學習總結 - 20145220韓旭飛 - 博客園 http://www.cnblogs.com/hxf5220/p/6107112.html 學號20145220《信息安全系統設計基礎》第10周學習總結 - 20145220韓旭…

linux 本地yum 恢復,Linux_RHEL系統恢復安裝光盤中的yum更新源的方法,安裝光盤本地YUM更新源掛載安 - phpStudy...

RHEL系統恢復安裝光盤中的yum更新源的方法安裝光盤本地YUM更新源掛載安裝光盤:復制代碼代碼如下:mount /dev/cdrom /mntvi /etc/yum.repos.d/local.repo修改本地更新源文件,添加內容:復制代碼代碼如下:[HightAvailability]nameHightAvailabil…

FileZilla搭建FTP服務器圖解教程

在日常辦公當中,經常會需要一個共享文件夾來存放一些大家共享的資料,為了保證文件數據的安全,最佳的方式是公司內部服務器搭建FTP服務器,然后分配多個用戶給相應的人員。今天給大家分享FileZilla搭建FTP服務器圖解教程&#xff0c…

linux kafka離線安裝,centos 離線安裝confluent_kafka 模塊

centos 離線安裝confluent_kafka 模塊背景:需要安裝Python模塊的機子不能上網,只能下載源碼進行安裝說明:如果可以上網直接pip install confluent_kafka 即可需安裝模塊:confluent_kafka #confluent_kafka 依賴librdkafka 模塊&am…

運維:Windows 系統安全日志中登錄類型介紹

目錄 Windows 登錄類型 登錄類型2:交互式登錄(Interactive) 登錄類型3:網絡(Network) 登錄類型4:批處理(Batch) 登錄類型5:服務(Service&#xff…

webdriver鼠標上下滑動

有時候我們需要對窗口顯示的頁面上下滑動,以顯示當前正在處理的位置,這就需要用到webdriver模擬鼠標上下滑動 package test20161201;import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.…

c語言燈塔案例求塔低數,C++:有一個8層燈塔,每層所點燈數都等于該層上一層的兩倍,一共有765盞燈,求塔底的燈數...

滿意答案0214zyt2013.05.23采納率&#xff1a;51% 等級&#xff1a;12已幫助&#xff1a;6734人// Note:Your choice is C IDE#include #include using namespace std;int main(){//第一,窮舉法int i,j;int n,s;for(i0;i<765;i)//窮舉的范圍可以進一步縮小&#xff0c;交…

電腦知識:電腦無法開機解決方案

電腦無法開機&#xff0c;首先不要緊張&#xff0c;你電腦里面的文件資料99.99%不會丟失&#xff0c;那有可能人問了&#xff0c;剩余0.001%是什么&#xff0c;只有一種可能&#xff0c;就是你的硬盤硬件徹底壞了。 今天小編講的這幾招都是對非常容易上手的電腦小白&#xff0c…

電腦技巧:鍵盤上最長的按鍵空格鍵使用技巧

目錄 01、音視頻播放器的暫停/播放切換 02、Alt空格鍵 03、Ctrl空格鍵 04、Shift空格鍵 05、游戲中按鍵 06、密碼完美替代者 空格鍵是所有鍵盤中的按鍵最長一個&#xff0c;我們平常使用最多的按鍵就是在輸入文字的時候按下空格鍵&#xff0c;其實除了空格&#xff0c;空格鍵還…

c語言從入門到精通ppt,C語言從入門到精通第1章.ppt

C語言從入門到精通第1章1.2.2 認識Turbo C 2.0 1.2.2 認識Turbo C 2.0 ⑴ 菜單欄&#xff1a;包括【File】(文件)菜單、【Edit】(編輯)菜單、【Run】(運行)菜單、【Compile】(編譯)菜單、【Project】(項目)菜單、【Options】(選擇)菜單、【Debug】(調試)菜單和【Break/watch】(…

Hadoop HBase概念學習系列之HBase里的客戶端和HBase集群建立連接(詳細)(十四)...

需要遵循以下步驟&#xff1a; 1、客戶端和Zookeeper集群建立連接。在這之前客戶端需要獲得一些信息&#xff08;可以從HBase配置文件中讀取或是直接指定&#xff09;。客戶端從Zookeeper集群中讀取-ROOT-表的位置信息。這是客戶端發起的第一次查詢。 2、客戶端連接-ROOT-表&am…

run()方法和start()方法測試解析

run()方法沒有啟動一個新的線程&#xff0c;通過如下代碼可以看出&#xff0c;是main主線程執行的 start()方法啟動了一個新線程&#xff0c;啟動了線程&#xff0c;從如下代碼看出t1線程執行了代碼

操作系統:升級Windows 11正式版的四種方法

距離 Windows 11 預覽版測試已經過去近四個半月。 終于&#xff0c;在 10 月 5 日&#xff0c;微軟的 Windows 11 正式版操作系統全面上市。 Win11 的正式上線&#xff0c;打破了微軟在 Win 10 剛發布之時曾表示 Win 10 將會是最后一代 Windows 的說法。 微軟表示&#xff0c;…