diff --git a/example/index.js b/example/index.js
index 6617253..63dc645 100644
--- a/example/index.js
+++ b/example/index.js
@@ -22,7 +22,8 @@ const startServer = async function() {
await server.register({
plugin: require('../'),
options: {
- serveScript: true
+ serveScript: true,
+ endpoint: '/api/errors-logs'
}
});
diff --git a/example/views/main.html b/example/views/main.html
index 4aba83d..11bb9e1 100644
--- a/example/views/main.html
+++ b/example/views/main.html
@@ -9,6 +9,11 @@
Hello
$(function(){
var logger = window.hapiLogger || {};
+ logger.configure({
+ debug: false,
+ logEndpoint: 'api/errors-logs'
+ });
+
logger.sendLog({test: 'yes'}, function(err, data) {
});
diff --git a/lib/browser/script.js b/lib/browser/script.js
index db3fe76..3f2786c 100644
--- a/lib/browser/script.js
+++ b/lib/browser/script.js
@@ -3,8 +3,10 @@
var HapiBrowserLogger = function() {
var self = this;
- this.debug = false;
- this.logEndpoint = '/api/browser-log';
+ this.config = {
+ debug: false,
+ logEndpoint: '/api/browser-log'
+ };
var getAjaxHandler = function() {
var xmlhttp;
@@ -16,6 +18,10 @@
return xmlhttp;
};
+ this.configure = function (config) {
+ Object.keys(config).forEach(prop => this.config[prop] = config[prop]);
+ };
+
this.sendLog = function(tags, data, cb) {
if (!Array.isArray(tags)) {
cb = data;
@@ -26,7 +32,7 @@
data.userAgent = navigator.userAgent;
data.location = window.location.href;
- if (this.debug) {
+ if (this.config.debug) {
console.log('hapi-error-log', tags, data);
if(cb) {
cb(null, data);
@@ -53,7 +59,7 @@
var dataString = JSON.stringify({ data: data, tags: tags });
- ajax.open('POST', this.logEndpoint, true);
+ ajax.open('POST', this.config.logEndpoint, true);
ajax.setRequestHeader('Content-type', 'application/json');
ajax.send(dataString);
};
diff --git a/test/test.browser-log.js b/test/test.browser-log.js
index 75ce07e..f1799b6 100644
--- a/test/test.browser-log.js
+++ b/test/test.browser-log.js
@@ -197,6 +197,30 @@ lab.test('ignore not valid', { timeout: 5000 }, async () => {
code.expect(statements.length).to.equal(1);
});
+lab.test('custom logs endpoint', { timeout: 5000 }, async () => {
+ const statements = [];
+
+ server.events.on('log', (logObj) => {
+ statements.push(logObj.data);
+ });
+
+ await server.register({
+ plugin: hapiSlow,
+ options: {
+ endpoint: '/api/custom-errors-endpoint'
+ }
+ });
+
+ const response = await server.inject({
+ method: 'POST',
+ url: '/api/custom-errors-endpoint',
+ payload
+ });
+
+ code.expect(response.statusCode).to.equal(200);
+ code.expect(statements.length).to.equal(1);
+});
+
lab.test('serves script', { timeout: 5000 }, async () => {
await server.register(require('inert'));
await server.register({