Merge pull request #15 from zeit/allow-empty-message

Allow to send empty message on RFC5424
This commit is contained in:
Naoyuki Kanezawa 2019-10-14 13:13:44 +09:00 committed by GitHub
commit 852bcef842
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 23 deletions

View File

@ -1329,7 +1329,7 @@ export class RFC5424 extends RFC {
/** /**
* Building a formatted message. Returns a promise with a formatted message * Building a formatted message. Returns a promise with a formatted message
* @public * @public
* @param {string} msg - The Syslog Message * @param {?string} msg - The Syslog Message
* @param {object} [options] - Options object * @param {object} [options] - Options object
* @param {number} [options.severity=7] - An array of structure * @param {number} [options.severity=7] - An array of structure
* @param {number} [options.facility=23] - Facility code to use sending this * @param {number} [options.facility=23] - Facility code to use sending this
@ -1353,7 +1353,7 @@ export class RFC5424 extends RFC {
options = options || {}; options = options || {};
let severity = typeof options.severity === 'number' ? let severity = typeof options.severity === 'number' ?
options.severity : 6; options.severity : 6;
if (typeof msg !== 'string' || options.severity > 7) { if ((msg != null && typeof msg !== 'string') || options.severity > 7) {
let errMsg = 'FORMAT ERROR: Syslog message must be a string'; let errMsg = 'FORMAT ERROR: Syslog message must be a string';
errMsg += ' msgSeverity must be a number between 0 and 7'; errMsg += ' msgSeverity must be a number between 0 and 7';
throw new Error(errMsg); throw new Error(errMsg);
@ -1370,7 +1370,7 @@ export class RFC5424 extends RFC {
// The PRI is common to both RFC formats // The PRI is common to both RFC formats
const pri = (facility * 8) + severity; const pri = (facility * 8) + severity;
// Add requested color // Add requested color
if (this.color) { if (this.color && msg) {
options.msgColor = options.msgColor || 36; options.msgColor = options.msgColor || 36;
let colorCode = '['; let colorCode = '[';
if (this.extendedColor) { if (this.extendedColor) {
@ -1439,10 +1439,8 @@ export class RFC5424 extends RFC {
fmtMsg += ' ' + pid; fmtMsg += ' ' + pid;
fmtMsg += ' ' + id; fmtMsg += ' ' + id;
fmtMsg += ' ' + structuredData; fmtMsg += ' ' + structuredData;
if (this.utf8BOM) { if (msg) {
fmtMsg += ' BOM' + msg; fmtMsg += ` ${this.utf8BOM ? 'BOM' : ''}${msg}`;
} else {
fmtMsg += ' ' + msg;
} }
return this.octetCounting return this.octetCounting
? `${Buffer.byteLength(fmtMsg)} ${fmtMsg}` ? `${Buffer.byteLength(fmtMsg)} ${fmtMsg}`
@ -1476,7 +1474,7 @@ export class RFC5424 extends RFC {
* class was created a default Syslog connector will be used. * class was created a default Syslog connector will be used.
* @see SyslogPro~Syslog * @see SyslogPro~Syslog
* @public * @public
* @param {string} msg - The unformatted Syslog message to send * @param {?string} msg - The unformatted Syslog message to send
* @returns {Promise} A Syslog formatted string according to the selected RFC * @returns {Promise} A Syslog formatted string according to the selected RFC
* @throws {Error} A standard error object * @throws {Error} A standard error object
*/ */
@ -1487,7 +1485,7 @@ export class RFC5424 extends RFC {
/** /**
* Send a syslog message with a severity level of 0 (Emergency) * Send a syslog message with a severity level of 0 (Emergency)
* @public * @public
* @param {string} msg - The emergency message to send to the Syslog server * @param {?string} msg - The emergency message to send to the Syslog server
* @returns {Promise} - The formatted syslog message sent to the Syslog server * @returns {Promise} - The formatted syslog message sent to the Syslog server
* @throws {Error} - Any bubbled-up error * @throws {Error} - Any bubbled-up error
*/ */
@ -1500,7 +1498,7 @@ export class RFC5424 extends RFC {
/** /**
* Send a syslog message with a severity level of 0 (Emergency) * Send a syslog message with a severity level of 0 (Emergency)
* @public * @public
* @param {string} msg - The emergency message to send to the Syslog server * @param {?string} msg - The emergency message to send to the Syslog server
* @returns {Promise} - The formatted syslog message sent to the Syslog server * @returns {Promise} - The formatted syslog message sent to the Syslog server
* @throws {Error} - Any bubbled-up error * @throws {Error} - Any bubbled-up error
*/ */
@ -1510,7 +1508,7 @@ export class RFC5424 extends RFC {
/** /**
* Send a syslog message with a severity level of 1 (Alert) * Send a syslog message with a severity level of 1 (Alert)
* @public * @public
* @param {string} msg - The alert message to send to the Syslog server * @param {?string} msg - The alert message to send to the Syslog server
* @returns {Promise} - The formatted syslog message sent to the Syslog server * @returns {Promise} - The formatted syslog message sent to the Syslog server
* @throws {Error} - Any bubbled-up error * @throws {Error} - Any bubbled-up error
*/ */
@ -1523,7 +1521,7 @@ export class RFC5424 extends RFC {
/** /**
* Send a syslog message with a severity level of 2 (Critical) * Send a syslog message with a severity level of 2 (Critical)
* @public * @public
* @param {string} msg - The critical message to send to the Syslog server * @param {?string} msg - The critical message to send to the Syslog server
* @returns {Promise} - The formatted syslog message sent to the Syslog server * @returns {Promise} - The formatted syslog message sent to the Syslog server
* @throws {Error} - Any bubbled-up error * @throws {Error} - Any bubbled-up error
*/ */
@ -1536,7 +1534,7 @@ export class RFC5424 extends RFC {
/** /**
* Send a syslog message with a severity level of 2 (Critical) * Send a syslog message with a severity level of 2 (Critical)
* @public * @public
* @param {string} msg - The critical message to send to the Syslog server * @param {?string} msg - The critical message to send to the Syslog server
* @returns {Promise} - The formatted syslog message sent to the Syslog server * @returns {Promise} - The formatted syslog message sent to the Syslog server
* @throws {Error} - Any bubbled-up error * @throws {Error} - Any bubbled-up error
*/ */
@ -1546,7 +1544,7 @@ export class RFC5424 extends RFC {
/** /**
* Send a syslog message with a severity level of 3 (Error) * Send a syslog message with a severity level of 3 (Error)
* @public * @public
* @param {string} msg - The error message to send to the Syslog server * @param {?string} msg - The error message to send to the Syslog server
* @returns {Promise} - The formatted syslog message sent to the Syslog server * @returns {Promise} - The formatted syslog message sent to the Syslog server
* @throws {Error} - Any bubbled-up error * @throws {Error} - Any bubbled-up error
*/ */
@ -1559,7 +1557,7 @@ export class RFC5424 extends RFC {
/** /**
* Send a syslog message with a severity level of 3 (Error) * Send a syslog message with a severity level of 3 (Error)
* @public * @public
* @param {string} msg - The error message to send to the Syslog server * @param {?string} msg - The error message to send to the Syslog server
* @returns {Promise} - The formatted syslog message sent to the Syslog server * @returns {Promise} - The formatted syslog message sent to the Syslog server
* @throws {Error} - Any bubbled-up error * @throws {Error} - Any bubbled-up error
*/ */
@ -1569,7 +1567,7 @@ export class RFC5424 extends RFC {
/** /**
* Send a syslog message with a severity level of 4 (Warning) * Send a syslog message with a severity level of 4 (Warning)
* @public * @public
* @param {string} msg - The warning message to send to the Syslog server * @param {?string} msg - The warning message to send to the Syslog server
* @returns {Promise} - The formatted syslog message sent to the Syslog server * @returns {Promise} - The formatted syslog message sent to the Syslog server
* @throws {Error} - Any bubbled-up error * @throws {Error} - Any bubbled-up error
*/ */
@ -1582,7 +1580,7 @@ export class RFC5424 extends RFC {
/** /**
* Send a syslog message with a severity level of 4 (Warning) * Send a syslog message with a severity level of 4 (Warning)
* @public * @public
* @param {string} msg - The warning message to send to the Syslog server * @param {?string} msg - The warning message to send to the Syslog server
* @returns {Promise} - The formatted syslog message sent to the Syslog server * @returns {Promise} - The formatted syslog message sent to the Syslog server
* @throws {Error} - Any bubbled-up error * @throws {Error} - Any bubbled-up error
*/ */
@ -1592,7 +1590,7 @@ export class RFC5424 extends RFC {
/** /**
* Send a syslog message with a severity level of 5 (Notice) * Send a syslog message with a severity level of 5 (Notice)
* @public * @public
* @param {string} msg - The notice message to send to the Syslog server * @param {?string} msg - The notice message to send to the Syslog server
* @returns {Promise} - The formatted syslog message sent to the Syslog server * @returns {Promise} - The formatted syslog message sent to the Syslog server
* @throws {Error} - Any bubbled-up error * @throws {Error} - Any bubbled-up error
*/ */
@ -1605,7 +1603,7 @@ export class RFC5424 extends RFC {
/** /**
* Send a syslog message with a severity level of 5 (Notice) * Send a syslog message with a severity level of 5 (Notice)
* @public * @public
* @param {string} msg - The notice message to send to the Syslog server * @param {?string} msg - The notice message to send to the Syslog server
* @returns {Promise} - The formatted syslog message sent to the Syslog server * @returns {Promise} - The formatted syslog message sent to the Syslog server
* @throws {Error} - Any bubbled-up error * @throws {Error} - Any bubbled-up error
*/ */
@ -1615,7 +1613,7 @@ export class RFC5424 extends RFC {
/** /**
* Send a syslog message with a severity level of 6 (Informational) * Send a syslog message with a severity level of 6 (Informational)
* @public * @public
* @param {string} msg - The informational message to send to the Syslog * @param {?string} msg - The informational message to send to the Syslog
* server * server
* @returns {Promise} - The formatted syslog message sent to the Syslog server * @returns {Promise} - The formatted syslog message sent to the Syslog server
* @throws {Error} - Any bubbled-up error * @throws {Error} - Any bubbled-up error
@ -1629,7 +1627,7 @@ export class RFC5424 extends RFC {
/** /**
* Send a syslog message with a severity level of 6 (Informational) * Send a syslog message with a severity level of 6 (Informational)
* @public * @public
* @param {string} msg - The informational message to send to the Syslog * @param {?string} msg - The informational message to send to the Syslog
* server * server
* @returns {Promise} - The formatted syslog message sent to the Syslog server * @returns {Promise} - The formatted syslog message sent to the Syslog server
* @throws {Error} - Any bubbled-up error * @throws {Error} - Any bubbled-up error
@ -1640,7 +1638,7 @@ export class RFC5424 extends RFC {
/** /**
* Send a syslog message with a severity level of 6 (Informational) * Send a syslog message with a severity level of 6 (Informational)
* @public * @public
* @param {string} msg - The informational message to send to the Syslog * @param {?string} msg - The informational message to send to the Syslog
* server * server
* @returns {Promise} - The formatted syslog message sent to the Syslog server * @returns {Promise} - The formatted syslog message sent to the Syslog server
* @throws {Error} - Any bubbled-up error * @throws {Error} - Any bubbled-up error
@ -1651,7 +1649,7 @@ export class RFC5424 extends RFC {
/** /**
* Send a syslog message with a severity level of 7 (Debug) * Send a syslog message with a severity level of 7 (Debug)
* @public * @public
* @param {string} msg - The debug message to send to the Syslog server * @param {?string} msg - The debug message to send to the Syslog server
* @returns {Promise} - The formatted syslog message sent to the Syslog server * @returns {Promise} - The formatted syslog message sent to the Syslog server
* @throws {Error} - Any bubbled-up error * @throws {Error} - Any bubbled-up error
*/ */

View File

@ -332,6 +332,11 @@ describe('RFC5424 Class Tests', () => {
expect(reason.message).toBe(errMsg); expect(reason.message).toBe(errMsg);
} }
}); });
test('RFC5424 BuildMessage with no message', () => {
const rfc5424 = new SyslogPro.RFC5424({ hostname: '-' });
const result = rfc5424.buildMessage();
expect(result).toMatch(/^<190>1 \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{1,3}[\+\-]\d{2}:\d{2} - - - - -\n$/);
});
test('RFC5424 BuildMessage with Timestamp options', () => { test('RFC5424 BuildMessage with Timestamp options', () => {
let rfc5424 = new SyslogPro.RFC5424({ let rfc5424 = new SyslogPro.RFC5424({
color: true, color: true,