simple-logstash-tcp
v1.0.1
Published
A simple library to send logs and messages to a Logstash instance via NodeJS and TCP
Downloads
3
Readme
LogstashTCP
A simple library to send logs and messages to a Logstash instance via NodeJS and TCP.
Quick start
- Add LogstashTCP as a dependency of your project. It's as simple as:
npm i logstash-tcp
- Import the library
import { LogstashTCP } from 'logstash-tcp';
Start sending logs
Remember to close connection when exiting your application
Examples
Connection
const tcp = new LogstashTCP('localhost', 5005);
Send to Logstash
tcp.sendMessage('Sample log message');
Send complex objects
tcp.send({
"message": "Weapons ready",
"level_value": 20000,
"thread_name": "SHIELD-HelicarrierWeaponsSystem",
"level": "INFO",
"host": "shd-hel-616",
"@version": "1",
"app_name": "unit-test",
"app_port": "-1",
"logger_name": "gov.shield.helicarrier.WeaponsSystem"
});
Close the connection
This will wait for all queued logs to be sent before closing
tcp.close();
Destroy the connection
This will close the connection immediately and will not send queued logs
tcp.destroy();
Custom payload
If you have fields that are always sent to Logstash, you can define a custom payload which gets sent everytime you send something.
const defaultPayload = {
app_name: 'My super app',
app_port: 8080
};
tcp.defaultPayload = defaultPayload;
tcp.sendMessage('Sample log message');
This example will send the following payload
{
app_name: 'My super app',
app_port: 8080,
message: 'Sample log message'
}
Default message field name
If you have a custom name for the 'message' field, you can easely specify it
tcp.customMessageFieldName = '@message';
tcp.sendMessage('Sample log message');
This example will send the following payload
{
'@message': 'Sample log message'
}
Develop
Write code and run tests against it with npm test
.
Note: you need a valid .env file to run tests as it needs a working Logstash or a mock server.