将所有Ti.API.info字符串获取到数组

时间:2015-06-02 05:19:05

标签: console titanium

我需要通过使用app.js文件末尾的某个函数将所有Ti.API.info字符串添加到数组中。如何在控制台上打印完所有字符串到数组。例如

Ti.API.info("Hello");
Ti.API.info("Good Morning");
Ti.API.info("Good Afternoon");
Ti.API.info("Good Evening");

在代码的最后我需要一个函数来检索和存储数组中的所有字符串。我怎么能这样做,任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

您可以覆盖现有的Ti.API.info功能,但是,不是强烈推荐的,因为人们可能不知道您更改了它(即使所做的更改不是' t影响初始行为)。

我认为最好的方法是定义自己的记录器。

<强> customLogger.js

var Logger = function () {
    /* Define an array to store logs */   
    this._logs = [];
}

Logger.prototype.info = function () {
    /* Iterate over each msg and store them */
    for(var i = 0, msg; msg = arguments[i]; i++) {
        this._logs.push({date: new Date(), msg: msg.toString()});          
    }

    /* Do the classic log */
    Ti.API.info.apply(Ti.API, arguments);
}

Logger.prototype.getLogs = function () {
    return JSON.stringify(this._logs, null, "\t");
}

/* Export The API */
var logger = new Logger(Ti.API);
exports.info = function() {
    Logger.prototype.info.apply(logger, arguments);
};

exports.getLogs = function () {
    return Logger.prototype.getLogs.apply(logger);
};

然后,在 app.js

var Logger = require("customLogger"); // Adapt the path to suits your architecture

Logger.info("My log message");

// ...

Ti.API.debug("Those are my logs:\n", Logger.getLogs());