Node.js Bunyan
Create a Coralogix logger instance and Bunyan stream to set up and use Bunyan, a Node.js module for logging in JSON.
Create a Coralogix Logger Instance
STEP 1. To create a Coralogix logger instance, input the following variables:
Variable | Description |
Private Key | Coralogix Send-Your-Data API key, a unique ID which represents your company |
Application Name | Coralogix application name For example, a company named “SuperData” might insert the “SuperData” string parameter. If it desires to debug its test environment, it might insert “SuperData –Test”. |
SubSystem Name | Coralogix subsystem name, essential parameter for organization of your data |
STEP 2. Configure the CORALOGIX_URL by inputting your Coralogix domain into the ingress endpoint:
https://ingress./api/v1/logs.
STEP 3. Install a Coralogix Bunyan Stream.
For more information on how to set up and use Bunyan, head over to the Bunyan repository.
Installation
Install Bunyan as follows:
Bunyan Usage Example
var bunyan = require("bunyan");
var CoralogixBunyan = require("coralogix-logger-bunyan");
// global configuration for coralogix
var config = {
privateKey: "your-private-key",
applicationName: "YOUR APP NAME",
subsystemName: "YOUR SUBSYSTEM",
};
CoralogixBunyan.CoralogixStream.configure(config);
// configure bunyan to user coralogix stram
var logger = bunyan.createLogger({
name: 'BUNYAN_ROOT',
streams: [
{
level: 'info',
stream: new CoralogixBunyan.CoralogixStream({category:"YOUR CATEGORY"}),
type: 'raw'
}
]
});
// use bunyan
logger.info('hello bunyan');
// use bunyan child loggers and assign category to them
var childLogger = logger.child({category:"CHILD CATEGORY"});
childLogger.error("Child logger bunyan");
//Below example code added to address missing logs due to termination of the process prior
//to the Bunyan stream being cleared. https://github.com/trentm/node-bunyan/issues/37
// Delayed shutdown time in milliseconds (adjust as necessary)
var shutdownDelay = 5000;
//Delayed shutdown function
//Allows the logger to send all pending messages before shutdown
function delayedShutdown(exitCode) {
setTimeout(() => {
process.exit(exitCode)
}, shutdownDelay);
}
//You can change the exitCode thrown by different signals as desired.
process.on('SIGHUP', () => delayedShutdown(1));
process.on('SIGINT', () => delayedShutdown(1));
process.on('SIGTERM', () => delayedShutdown(1));
process.on('uncaughtException', () => delayedShutdown(1));
//When manually stoping your process, use the process.exit() wrapper instead
delayedShutdown(0)
Notes:
Bunyan log messages are scheduled asynchronously. If your process is manually terminated or terminates as a result of an error, log messages may be lost.
An example delayed shutdown implementation has been provided in the example code above to demonstrate how you can catch different OS signals and trigger a delayed shutdown while allowing your Bunyan log stream time to clear.
Support
Need help?
Our world-class customer success team is available 24/7 to walk you through your setup and answer any questions that may come up.
Feel free to reach out to us via our in-app chat or by sending us an email at [email protected].