You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by db...@apache.org on 2016/02/20 00:10:34 UTC
cordova-windows git commit: CB-10640: Windows logging is broken
Repository: cordova-windows
Updated Branches:
refs/heads/master 51ac7ab16 -> a3536eccd
CB-10640: Windows logging is broken
Fixing the Windows logging
Project: http://git-wip-us.apache.org/repos/asf/cordova-windows/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-windows/commit/a3536ecc
Tree: http://git-wip-us.apache.org/repos/asf/cordova-windows/tree/a3536ecc
Diff: http://git-wip-us.apache.org/repos/asf/cordova-windows/diff/a3536ecc
Branch: refs/heads/master
Commit: a3536eccde1f2bbf8757172d88d3402a4606a99b
Parents: 51ac7ab
Author: Sarangan Rajamanickam <sa...@microsoft.com>
Authored: Wed Feb 17 14:58:30 2016 -0800
Committer: Sarangan Rajamanickam <sa...@microsoft.com>
Committed: Thu Feb 18 12:13:00 2016 -0800
----------------------------------------------------------------------
template/cordova/lib/log.js | 84 +++++++++++++++++++---------------------
1 file changed, 40 insertions(+), 44 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/a3536ecc/template/cordova/lib/log.js
----------------------------------------------------------------------
diff --git a/template/cordova/lib/log.js b/template/cordova/lib/log.js
index d01c4af..0245db8 100644
--- a/template/cordova/lib/log.js
+++ b/template/cordova/lib/log.js
@@ -18,39 +18,42 @@
*/
// requires
-var path = require('path'),
- et = require('elementtree'),
- ConfigParser = require('./ConfigParser.js'),
- nopt = require('nopt');
+var path = require('path');
+var et = require('elementtree');
+var ConfigParser = require('./ConfigParser.js');
+var nopt = require('nopt');
-var spawn = require('cordova-common').superspawn.spawn;
+var spawn = require('cordova-common').superspawn.spawn;
+var execSync = require('child_process').execSync;
// paths
-var platformRoot = path.join(__dirname, '..', '..'),
- projectRoot = path.join(platformRoot, '..', '..'),
- configPath = path.join(projectRoot, 'config.xml');
+var platformRoot = path.join(__dirname, '..', '..');
+var projectRoot = path.join(platformRoot, '..', '..');
+var configPath = path.join(projectRoot, 'config.xml');
//constants
-var APP_TRACING_LOG = 'Microsoft-Windows-AppHost/ApplicationTracing',
- ADMIN_LOG = 'Microsoft-Windows-AppHost/Admin';
+var APP_TRACING_LOG = 'Microsoft-Windows-AppHost/ApplicationTracing';
+var ADMIN_LOG = 'Microsoft-Windows-AppHost/Admin';
+var ONE_MINUTE = 60 * 1000;
// variables
-var appTracingInitialState = null,
- appTracingCurrentState = null,
- adminInitialState = null,
- adminCurrentState = null,
- timers = [],
- appName;
+var appTracingInitialState = null;
+var appTracingCurrentState = null;
+var adminInitialState = null;
+var adminCurrentState = null;
+var timers = [];
+var logFromTime = 10 * ONE_MINUTE; // show last 10 minutes by default
+var appName;
+
/*
* Gets windows AppHost/ApplicationTracing and AppHost/Admin logs
* and prints them to console
*/
module.exports.run = function(args) {
- var startTime = new Date(new Date().getTime() - 10 * 60 * 1000).toISOString(), // show last 10 minutes by default
- knownOpts = { 'minutes' : Number, 'dump' : Boolean, 'help' : Boolean },
- shortHands = { 'mins' : ['--minutes'], 'h' : ['--help'] },
- parsedOpts = nopt(knownOpts, shortHands, args, 0);
+ var knownOpts = { 'minutes' : Number, 'dump' : Boolean, 'help' : Boolean };
+ var shortHands = { 'mins' : ['--minutes'], 'h' : ['--help'] };
+ var parsedOpts = nopt(knownOpts, shortHands, args, 0);
if (parsedOpts.help) {
module.exports.help();
@@ -58,9 +61,9 @@ module.exports.run = function(args) {
}
if (parsedOpts.dump) {
if (parsedOpts.minutes) {
- startTime = new Date(new Date().getTime() - parsedOpts.minutes * 60 * 1000).toISOString();
+ logFromTime = parsedOpts.minutes * ONE_MINUTE;
}
- dumpLogs(startTime);
+ dumpLogs(logFromTime);
return;
}
@@ -151,26 +154,19 @@ function exitGracefully(exitCode) {
}
function startLogging(channel) {
- var startTime = new Date().toISOString();
timers.push(setInterval(function() {
- getEvents(channel, startTime).then(function(events) {
- events.forEach(function (evt) {
- startTime = evt.timeCreated;
- console.log(stringifyEvent(evt));
- });
+ var events = getEvents(channel, logFromTime);
+ events.forEach(function (evt) {
+ console.log(stringifyEvent(evt));
});
}, 1000));
}
-function dumpLogs(startTime) {
- console.log('Dumping logs starting from ' + startTime);
- var appTracingEvents, adminEvents;
- getEvents(APP_TRACING_LOG, startTime).then(function (evts) {
- appTracingEvents = evts;
- return getEvents(ADMIN_LOG, startTime);
- }).then(function(evts) {
- adminEvents = evts;
- appTracingEvents.concat(adminEvents)
+function dumpLogs(logFromTime) {
+ console.log('Dumping logs starting from ' + logFromTime);
+ var appTracingEvents = getEvents(APP_TRACING_LOG, logFromTime);
+ var adminEvents = getEvents(ADMIN_LOG, logFromTime);
+ appTracingEvents.concat(adminEvents)
.sort(function(evt1, evt2) {
if (evt1.timeCreated < evt2.timeCreated) {
return -1;
@@ -182,16 +178,16 @@ function dumpLogs(startTime) {
.forEach(function(evt) {
console.log(stringifyEvent(evt));
});
- });
}
-function getEvents(channel, startTime) {
+function getEvents(channel, logFromTime) {
var command = 'wevtutil';
- var args = ['qe', channel, '/q:"*[System [(TimeCreated [@SystemTime>\'' + startTime + '\'])]]"', '/e:root'];
- return spawn(command, args)
- .then(function(stdout) {
- return parseEvents(stdout);
- });
+ var args = ['qe', channel, '/q:"*[System [TimeCreated[timediff(@SystemTime)<=' + logFromTime + ']]]"', '/e:root'];
+ command = command + ' ' + args.join(' ');
+ console.log('Running command: ');
+ console.log(' ' + command);
+ var events = execSync(command);
+ return parseEvents(events.toString());
}
function getElementValue(et, element, attribute) {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org