log4js-tcp-appender

1.1.0 • Public • Published

log4js-tcp

TCP appender for log4js-node logger with layouts and errors handling

Usage

Install appender

npm i log4js-tcp-appender

Configure log4js using appender

log4js.configure({
	appenders: {
		splunk: {
			type: 'log4js-tcp-appender',
			host: 'splunk.host',
			port: 6789,
			layout: {
				type: 'custom_or_builtin_layout',
			},
		},
	},
	categories: {
		default: {
			appenders: ['splunk'],
			level: 'info',
		},
	},
}); 

Note on error handling

Occurring socket errors will be logged to STDERR. Appender tries to reconnect on 'close' socket event, same happens on 'error' event by simply handling following 'close' event. This may lead to repeating connection error. Keeping in mind this case, appender will only log distinct error messages, comparing every occurring error to the last 10. Also will write notification message on successful re-connection.

Sample STDERR output in case of temporary connection unavailability:

# Messages are being logged normally here

2018-11-19T15:37:38.500Z	log4js-tcp-appender:40348	Error: connect ECONNREFUSED 10.0.0.101:8001
	at Object.exports._errnoException (util.js:1024:11)
	...

2018-11-19T15:37:38.600Z	log4js-tcp-appender:40348	Error: connect ECONNREFUSED 10.0.0.102:8001
	at Object.exports._errnoException (util.js:1024:11)
	...

2018-11-19T15:37:38.700Z	log4js-tcp-appender:40348	Error: connect ECONNREFUSED 10.0.0.103:8001
	at Object.exports._errnoException (util.js:1024:11)
	...

# Lots of omitted by appender error messages same as the three above

2018-11-19T15:37:44.963Z	log4js-tcp-appender:40348	Connection restored

# Messages are being logged normally here

Comparing each error instance to the last ten, cures the case when receiving side being load-balanced and returns new ip for each sequential ougoing connection try.

Notes:

  • could be grepped by 'log4js-tcp-appender' substring
  • in sample output log4js-tcp-appender:40348 - PID added after the colon

Dependents (0)

Package Sidebar

Install

npm i log4js-tcp-appender

Weekly Downloads

5

Version

1.1.0

License

Apache-2.0

Unpacked Size

19 kB

Total Files

6

Last publish

Collaborators

  • chesco