Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions example/example_async.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
"use strict";

let process = require('process');
let SeqLogger = require('../seq_logger');

let seq = new SeqLogger({ serverUrl: 'http://localhost:5341', onRemoteConfigChange: (config) => {
console.log(config);
}});

sayHello(100)
.then(() => seq.close());

async function sayHello(times) {
for(let n = 0; n <= times; n++){
await new Promise((accept) => setTimeout(accept, 1 * 1000)); // Waits 1 second before each round

console.log('Round ', n);
seq.emit({
timestamp: new Date(),
level: 'Information',
messageTemplate: 'Hello for the {n}th time, {user}!',
properties: {
user: process.env.USERNAME,
n: n
}
});

if (n % 5 == 0) { // Flush every 5 events
seq.flush();
}
}
}

5 changes: 5 additions & 0 deletions index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,15 @@ export interface SeqLoggerConfig {
batchSizeLimit?: number;
requestTimeout?: number;
onError: (e: Error) => void;
onRemoteConfigChange?: (remoteConfig: RemoteConfig) => void;
}

export type SeqLogLevel = 'Verbose' | 'Debug' | 'Information' | 'Warning' | 'Error' | 'Fatal';

export interface RemoteConfig{
MinimumLevelAccepted: SeqLogLevel | null
}

export interface SeqEvent {
timestamp: Date;
level?: SeqLogLevel;
Expand Down
12 changes: 11 additions & 1 deletion seq_logger.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ class SeqLogger {
this._timer = null;
this._closed = false;
this._activeShipper = null;
this._onRemoteConfigChange = cfg.onRemoteConfigChange || null;
this._lastRemoteConfig = null;
}

// Flush events queued at the time of the call, and wait for pending writes to complete
Expand Down Expand Up @@ -269,7 +271,15 @@ class SeqLogger {
httpErr = 'HTTP log shipping failed: ' + res.statusCode;
}

res.on('data', () => {});
res.on('data', (buffer) => {
let dataRaw = buffer.toString();

if(this._onRemoteConfigChange && this._lastRemoteConfig !== dataRaw){
this._lastRemoteConfig = dataRaw;
this._onRemoteConfigChange(JSON.parse(dataRaw));
}
});

res.on('error', e => {
reject(e);
});
Expand Down