commit 1527e0b8f1a06cf0ddd9c21ae2eacabb94cbf707
parent 21e7828d956383c6206f9c9a505f632c2cdc2929
Author: Sergej Orlov <wladimirych@gmail.com>
Date: Fri, 7 Feb 2020 09:53:44 +0100
logging: improve logging for jnx
Diffstat:
2 files changed, 44 insertions(+), 15 deletions(-)
diff --git a/src/App.js b/src/App.js
@@ -119,7 +119,7 @@ function setUp() {
printControl.setMinimized();
}
- new L.Control.JNX(layersControl, {position: 'bottomleft'})
+ const jnxControl = new L.Control.JNX(layersControl, {position: 'bottomleft'})
.addTo(map)
.enableHashState('j');
@@ -218,6 +218,16 @@ function setUp() {
};
}
+ function getErrorLoggingInfo(error) {
+ return error
+ ? {
+ name: error.name,
+ message: error.message,
+ stack: error.stack,
+ }
+ : null;
+ }
+
function logUsedMaps() {
const layers = [];
map.eachLayer((layer) => {
@@ -239,13 +249,7 @@ function setUp() {
logging.logEvent('mapRenderEnd', {
eventId: e.eventId,
success: e.success,
- error: e.error
- ? {
- name: e.error.name,
- message: e.error.message,
- stack: e.error.stack,
- }
- : null,
+ error: getErrorLoggingInfo(e.error),
});
});
@@ -271,6 +275,23 @@ function setUp() {
});
});
+ jnxControl.on('tileExportStart', function(e) {
+ logging.logEvent('tileExportStart', {
+ eventId: e.eventId,
+ layer: getLayerLoggingInfo(e.layer),
+ zoom: e.zoom,
+ bounds: getLatLngBoundsLoggingInfo(e.bounds),
+ });
+ });
+
+ jnxControl.on('tileExportEnd', function(e) {
+ logging.logEvent('tileExportEnd', {
+ eventId: e.eventId,
+ success: e.success,
+ error: getErrorLoggingInfo(e.error),
+ });
+ });
+
logging.logEvent('start', startInfo);
logUsedMaps();
}
diff --git a/src/lib/leaflet.control.jnx/index.js b/src/lib/leaflet.control.jnx/index.js
@@ -90,18 +90,26 @@ L.Control.JNX = L.Control.extend({
const sanitizedLayerName = layerName.toLowerCase().replace(/[ ()]+/u, '_');
const fileName = `nakarte.me_${sanitizedLayerName}_z${zoom}.jnx`;
const eventId = logging.randId();
- logging.logEvent('jnx start', {eventId, layerName, zoom, bounds});
+ this.fire('tileExportStart', {
+ eventId,
+ layer,
+ zoom,
+ bounds,
+ });
makeJnxFromLayer(layer, layerName, zoom, bounds, this.notifyProgress.bind(this))
.then((fileData) => {
saveAs(fileData, fileName, true);
- logging.logEvent('jnx end', {eventId, success: true});
+ this.fire('tileExportEnd', {eventId, success: true});
})
.catch((e) => {
- logging.captureException(e, 'Failed to create JNX');
- logging.logEvent('jnx end', {eventId, success: false, error: e.stack});
- notify(`Failed to create JNX: ${e.message}`);
- }
- )
+ logging.captureException(e, 'Failed to create JNX');
+ this.fire('tileExportEnd', {
+ eventId,
+ success: false,
+ error: e
+ });
+ notify(`Failed to create JNX: ${e.message}`);
+ })
.then(() => this.makingJnx(false));
},