使用cordova将日志文件写入设备

时间:2015-12-02 08:40:52

标签: cordova ionic

我正在使用ionic / cordova来构建移动应用程序。为了调试应用程序,我想使用文件系统写一个日志文件并将其存储到设备中(即SD卡中的某些位置)。有没有办法使用phonegap来实现这个功能。

有人可以建议一些有用的链接吗?

3 个答案:

答案 0 :(得分:1)

将此行放入log.bat文件,这将打开控制台并记录设备上发生的所有事情。

adb logcat CordovaActivity:V CordovaWebView:V CordovaWebViewClient:V IceCreamCordovaWebViewClient:V CordovaLog:V *:S

更新:要在文件上写入: 要跟随good example,但需要处理错误回调,以获取错误

window.resolveLocalFileSystemURL(cordova.file.dataDirectory, function(dir) {
    console.log("got main dir",dir);
    dir.getFile("log.txt", {create:true}, function(file) {
        console.log("got the file", file);
        logOb = file;
        writeLog("App started");            
    });
});


function writeLog(str) {
    if(!logOb) return;
    var log = str + " [" + (new Date()) + "]\n";
    console.log("going to log "+log);
    logOb.createWriter(function(fileWriter) {

        fileWriter.seek(fileWriter.length);

        var blob = new Blob([log], {type:'text/plain'});
        fileWriter.write(blob);
        console.log("ok, in theory i worked");
    }, fail);
}

    document.querySelector("#actionOne").addEventListener("touchend", function(e) {
    //Ok, normal stuff for actionOne here
    //
    //Now log it
    writeLog("actionOne fired");
}, false);



  document.querySelector("#actionTwo").addEventListener("touchend",              function(e) {
        //Ok, normal stuff for actionTwo here
        //
        //Now log it
        writeLog("actionTwo fired");
    }, false);

最后:

function justForTesting() {
logOb.file(function(file) {
    var reader = new FileReader();

    reader.onloadend = function(e) {
        console.log(this.result);
    };

    reader.readAsText(file);
}, fail);

}

这里是source的解释。

我希望有所帮助,祝你好运

答案 1 :(得分:1)

您可以通过在应用中添加下一个插件来实现:

https://github.com/pbakondy/filelogger

答案 2 :(得分:0)

您可以使用cordova方式执行此操作,编写名为log.txt的文件并将您的日志放在那里。

请按照此tutorial了解如何在cordova中执行此操作。

for ionic: 您可以将这些代码放在控制器中。