2012-10-28 100 views
8

與iOS和Android相比,BlackBerry 10具有相當複雜的日誌系統。 我發現的唯一的解決辦法是使用javaloader工具是這樣的:獲得BlackBerry 10日誌的最佳方式是什麼?

javaloader.exe -u eventlog > eventlog.txt 

但它似乎只與前10個版本的BlackBerry OS的工作。我在BlackBerry 10 NDK中找不到此工具。

使用命令行獲取日誌的最簡單方法是什麼?

+0

你試過[這個(http://btsc.webapps.blackberry.com/btsc/viewdocument.do;jsessionid=8B65359757AC2078B347497A3AAFF444?externalId=KB34114&sliceId=2&cmd=displayKC&docTyp e = kc&noCount = true&ViewsDocsListHelper = com.kanisa.apps.common.BaseViewedDocsListHelperImpl)解決方案? – CAMOBAP

+0

@CAMOBAP:是的,但''-getFile''對我來說工作得更快。 –

回答

6

有兩種方法,都記錄在release notes

如果您可以通過定義像函數複製的記錄流(針對應用程序)到控制檯:

void myMessageOutput(QtMsgType type, const char* msg) { 
    fprintf(stdout, "%s\n", msg); 
    fflush(stdout); 
} 

然後安裝它作爲一個消息處理程序:

int main(int argc, char **argv) 
{ 
    Application app(argc, argv); 
    qInstallMsgHandler(myMessageOutput); 
    ... 
} 

您可以連接到具有ssh系統的模擬器或設備並使用slog2info命令。

+1

有沒有辦法查看崩潰日誌? –

+0

Momentics構建的調試版本將生成一個核心文件。 QNX開發人員在BlackBerry活動中支持人們一致推薦分析Momentics中的核心轉儲。 – Richard

+1

這是黑莓devblog的新主題:http://devblog.blackberry.com/2012/10/blackberry-10-sdk-console-logging – Benoit

6

這裏是我發現遠離Momentics IDE到命令行。

當應用程序確實printf()輸出進入文件

/accounts/1000/appdata/[your application folder name]/logs/log 

您可以使用此命令

blackberry-deploy -getFile [path-to-log] 

把該文件到您的計算機。此外,您可以使用IDE中的目標文件系統導航器來檢查此(或任何其他)文件。

9

您也可以通過SSH連接到設備上(SSH [email protected])並運行:

slog2info -w 

這將顯示slogger2日誌。

+1

在使用SSH登錄之前需要完成什麼?我必須使用Momentics中的目標文件系統資源管理器將我的公共RSA密鑰添加到authorized_keys2文件中,然後才能登錄。我認爲他們的意思不是那麼複雜,所以也許我錯過了某些內容:) –

+1

telnet似乎工作,以及不需要鑰匙,但我沒有找到有用的日誌我的情況 – Aras

4

這類似於另一個答案但是具有附加的細節,這將是對用戶Momentics的(黑莓10 IDE)

1.啓用在Momentics的IDE終端視圖

窗口有用 - >顯示視圖 - >其他 - >終端

選擇終端,然後按OK

2.連接到終端

在您的視圖窗口中選擇終端選項卡(可能稱爲'終端1')。 選擇連接按鈕,它是視圖窗口右上角右上方的綠色N形按鈕。

3。運行日誌查看器命令

$ slog2info -w 

要了解此命令的詳細信息:

$ slog2info --help 

*請注意,不應該有任何需要提供SSH用戶或鑰匙,那就是照顧當你使用這個程序時,你可以使用IDE。

日誌報表

您可以添加日誌到您的應用程序使用以下命令

qDebug() << "This is debug"; 
qWarning() << "This is a warning"; 
qCritical() << "This is critical " << somevariable << ", some additional text"; 
qFatal() << "This is fatal" << somevariable; 
+0

不要在調試運行時在控制檯上得到相同的?我的應用在調試模式下工作,但在發佈時崩潰....在發佈模式下,我無法使用slog2info – becker

+0

自去年以來,IDE可能已經發生了變化。發佈是另一場球賽,我會在週末更新我的答案。 –

-1

您可以從以下路徑查看所有日誌

/accounts/1000/appdata/[Application Name]/logs/log 
+0

[此答案已經提供。](http://stackoverflow.com/a/13144128/507761) –

相關問題