2017-12-18 83 views
1

在我的應用程序的開發階段,對於我來說,獲取由Log.p()Log.e()生成的所有日誌在一個字符串中(例如,在一個對話框中顯示它們,或者通過電子郵件發送一個不同於你的Log.sendLog()的方法)。Codename One - 獲取Log.p()和Log.e()生成的所有日誌的可靠方式

這就是爲什麼我創建了以下方法。我的問題是,如果它是可靠的,如果我沒有複製的東西已經存在:

/** 
* Get all logs of the app generated with Log.p() or Log.e() 
* @return All logs of the app generated with Log.p() or Log.e() 
*/ 
public static String getAllLogs() { 
    String logs = ""; 
    try { 
     logs = Util.readToString(Storage.getInstance().createInputStream("CN1Log__$")); 
    } catch (IOException ex) { 
     logs = ""; 
    } 
    return logs; 
} 

回答

1

這種方法的主要問題是在OS的處理打開文件的各種方式,所以我會避免使用,因爲它可能通過檢查引發碰撞例如您在寫入文件時打開一個文件進行閱讀。

在iOS/Android上,它應該可以很好地工作,因爲它們基於unix,但在Windows上它可能很具有挑戰性。內存受限設備中的大日誌可能也會導致崩潰。