in Extensions/ArtifactEngine/Engine/logger.ts [57:119]
public logSummary(): void {
var allTickets = this.store.getTickets();
var fileTickets = allTickets.filter(x => x.artifactItem.itemType == ItemType.File);
var finishedItems = fileTickets.filter(x => x.state == TicketState.Processed || x.state == TicketState.Skipped || x.state == TicketState.Failed);
var processedItems = fileTickets.filter(x => x.state == TicketState.Processed);
var skippedItems = fileTickets.filter(x => x.state == TicketState.Skipped);
var failedItems = fileTickets.filter(x => x.state == TicketState.Failed);
var downloadSizeInBytes = 0;
var fileSizeInBytes = 0;
for (var ticket of fileTickets) {
downloadSizeInBytes += ticket.downloadSizeInBytes;
fileSizeInBytes += ticket.fileSizeInBytes;
}
var downloadSizeInMB = (downloadSizeInBytes / (1024 * 1024));
var endTime = new Date();
var downloadTime = (endTime.valueOf() - this.startTime.valueOf()) / 1000;
console.log(
tl.loc("DownloadSummary",
fileTickets.length,
processedItems.length,
skippedItems.length,
failedItems.length,
downloadTime,
(downloadSizeInMB > 1 ? downloadSizeInMB.toFixed(3) + "MB" : downloadSizeInBytes + "Bytes")));
ci.publishEvent('performance',
{
location: this.store.getRootLocation(),
total: allTickets.length,
files: fileTickets.length,
processed: processedItems.length,
skipped: skippedItems.length,
failed: failedItems.length,
downloadTimeInSeconds: downloadTime,
downloadSizeInBytes: downloadSizeInBytes,
fileSizeInBytes: fileSizeInBytes
});
if (Logger.verbose) {
tl.debug("Summary:");
var pathLengths = finishedItems.map(x => x.artifactItem.path.length);
var maxPathLength = pathLengths.reduce((a, b) => a > b ? a : b, 1);
var fileHeader = this.padText("File", maxPathLength);
var startTimeHeader = this.padText("Start Time", 25);
var finishTimeHeader = this.padText("Finish Time", 25);
var durationHeader = this.padText("Duration", 10);
var stateHeader = this.padText("STATE", 10);
tl.debug(this.padText("", maxPathLength + 25 + 25 + 10 + 10 + 15, '-'))
tl.debug(`| ${fileHeader} | ${startTimeHeader} | ${finishTimeHeader} | ${durationHeader} | ${stateHeader}|`)
tl.debug(this.padText("", maxPathLength + 25 + 25 + 10 + 10 + 15, '-'))
fileTickets.forEach(ticket => {
var duration = (ticket.finishTime.valueOf() - ticket.startTime.valueOf()) / 1000 + " secs";
tl.debug("| " + this.padText(ticket.artifactItem.path, maxPathLength) + " | " + this.padText(ticket.startTime.toISOString(), 25) + " | " + this.padText(ticket.finishTime.toISOString(), 25) + " | " + this.padText(duration, 10) + " | " + this.padText(ticket.state.toString().toUpperCase(), 10) + "|");
tl.debug(this.padText("", maxPathLength + 25 + 25 + 10 + 10 + 15, '-'))
});
}
}