新增 console.trace(), console.time(), console.timeEnd()

新增 console.setGlobalLogConfig()支持保存日志文件
This commit is contained in:
hyb1996
2018-11-20 22:00:00 +08:00
parent 237dbe0f50
commit 0f4f1da208
6 changed files with 79 additions and 11 deletions

View File

@@ -1,43 +1,82 @@
module.exports = function(__runtime__, scope){
module.exports = function (__runtime__, scope) {
var rtConsole = __runtime__.console;
var console = {};
console.assert = function(value, message){
console.assert = function (value, message) {
message = message || "";
rtConsole.assertTrue(value, message);
}
console.rawInput = rtConsole.rawInput.bind(rtConsole);
console.input = function(data, param){
console.input = function (data, param) {
return eval(console.rawInput.call(console, [].slice(arguments)) + "");
}
console.log = function(){
console.log = function () {
rtConsole.log(util.format.apply(util, arguments));
}
console.verbose = function(){
console.verbose = function () {
rtConsole.verbose(util.format.apply(util, arguments));
}
console.print = function(){
console.print = function () {
rtConsole.print(android.util.Log.DEBUG, util.format.apply(util, arguments));
}
console.info = function(){
console.info = function () {
rtConsole.info(util.format.apply(util, arguments));
}
console.warn = function(){
console.warn = function () {
rtConsole.warn(util.format.apply(util, arguments));
}
console.error = function(){
console.error = function () {
rtConsole.error(util.format.apply(util, arguments));
}
var timers = {}, ascu = android.os.SystemClock.uptimeMillis;
console.time = console.time || function (label) {
label = label || "default";
timers[label] = ascu();
}
console.timeEnd = console.timeEnd || function (label) {
label = label || "default";
var result = ascu() - timers[label];
delete timers[label];
console.log(label + ": " + result + "ms");
}
console.trace = console.trace || function captureStack(message) {
var k = {};
Error.captureStackTrace(k, captureStack);
console.log(util.format.apply(util, arguments) + "\n" + k.stack);
};
console.setGlobalLogConfig = function (config) {
let logConfigurator = new Packages["de.mindpipe.android.logging.log4j"].LogConfigurator();
if (config.file) {
logConfigurator.setFileName(files.path(config.file));
logConfigurator.setUseFileAppender(true);
}
logConfigurator.setFilePattern(option(config.filePattern, "%m%n"))
logConfigurator.setMaxFileSize(option(config.maxFileSize, 512 * 1024));
logConfigurator.setImmediateFlush(option(config.immediateFlush, true));
let rootLevel = option(config.rootLevel, "ALL");
logConfigurator.setRootLevel(org.apache.log4j.Level[rootLevel.toUpperCase()]);
logConfigurator.setMaxBackupSize(option(config.maxBackupSize, 5));
logConfigurator.setResetConfiguration(option(config.resetConfiguration, true));
logConfigurator.configure();
}
function option(value, def) {
return value == undefined ? def : value;
}
console.show = rtConsole.show.bind(rtConsole);
console.hide = rtConsole.hide.bind(rtConsole);
console.clear = rtConsole.clear.bind(rtConsole);