log-detail
v5.0.1
Published
Custom log format ready to go out of the box for logging to Splunk with great detail and developer friendliness
Downloads
15
Readme
Log Detail
A log utility that is ready made to work with Splunk to provide verbose, detailed log events right out of the box.
Configuration
appName (string) [Default: 'MyApp']
The name of the application that can be included in log event
enabled (boolean) [Default: true]
Controls whether or not log events should be written.
format (string) [Default: '$timestamp $appName $namespace $uuid $level $data $message']
The format of log output. The fields available for use are all listed in the default value.
level (string) [Default: 'info'] [Options: 'debug', 'info', 'warn', 'error', 'fatal']
The log level threshold for output. If an event level is not greater than or equal to the set level the event will not be written.
timezone (string) [Default: 'local'] [Options: 'local', 'utc']
Configure whether or not to use local time or utc time. Timestamps are in ISO format.
Optional Parameters
Data Object
If you provide a generic object as an additional parameter for write methods (debug, info, warn, error, fatal) it will be included in the output broken into key/value pairs. The values will be passed through JSON.stringify in the event an object or array is provided with a key.
Error
If you pass an object that is an instance of the Error type, it will automatically be pushed into the data output of the event with the error key.
UUID
If you pass a string it will be used as the unique identifier for the log event. This can be useful if you want to use the same uuid for a series of log events. Such as tying them all to a single http request.
Example
Javascript
const { Writer } = require('log-detail');
//one time only. Or just use the default and not set it at all.
Writer.setGlobalConfiguration({
appName: 'MyApp',
level: 'debug'
});
let userLog = new Writer('api:user');
let groupLog = new Writer('api:group');
userLog.info('New user created', { username: 'Joel' });
groupLog.info('New group created', { groupname: 'MyGroup' });
specificGroup.info('User added to group', { username: 'Joel' });
Typescript
import { Writer } from 'log-detail';
//one time only. Or just use the default and not set it at all.
Writer.setGlobalConfiguration({
appName: 'MyApp',
level: 'debug'
});
let userLog = new Writer('api:user');
let groupLog = new Writer('api:group');
userLog.info('New user created', { username: 'Joel' });
groupLog.info('New group created', { groupname: 'MyGroup' });
specificGroup.info('User added to group', { username: 'Joel' });