peculiar-logger
v1.3.4
Published
Logging to the console, file, database
Downloads
27
Maintainers
Readme
#node.peculiar-logger.js
#Description
##Installation npm i peculiar-logger
##Module connection const Logger = require ('peculiar-logger');
##Creating a journal const Journal = Logger.journal(); const journal = new Journal(source, path, output);
###Description of parameters
- parameter 'source':
- purpose -> source of logging,
- type -> String,
- required -> true
- parametr 'path':
- purpose -> specify the full path for saving the log file, а также as well as the name of the collection for mongoDB,
- type -> Object,
- required -> false,
- default -> { file: './logs, db:
logs-${source}
}
- parametr 'output':
- purpose -> indicates where to output logs, by default the output goes to the console and to the file,
- type -> Object,
- required -> false;
- default -> { console: true, file: true, db: false }
###Example of creating an instance
const Journal = Logger.journal();
const test1 = new Journal( 'Test1', {file: ${__dirname}/logs
}, {console: true, file: false, db: false} );
const test2 = new Journal( 'Test2', {file: D:\\logs
, db: 'logs-test2'}, {console: true, file: true, db: true} );
const test3 = new Journal( 'Test3', , {console: true, file: true, db: false} );
const test4 = new Journal( 'Test4', {file: '../logs'} );
const test5 = new Journal( 'Test4' );
##Logger parameters
###current parameters of the logger
- parametr 'mongoDB':
- type -> Object (Mongoose),
- default -> null,
- set -> true,
- get -> true
- parametr 'dirname':
- purpose -> default directory,
- type -> String,
- default -> null,
- set -> true,
- get -> true
- parametr 'collection':
- purpose -> default collection,
- type -> String,
- default -> null,
- set -> true,
- get -> true
- parametr 'output':
- purpose -> default output,
- type -> Object,
- default -> { console: null, db: null, file: null },
- set -> true,
- get -> true
- parametr 'colors':
- purpose -> default colors,
- type -> Object,
- default -> { error: '\x1b[31m%s\x1b[0m', fatal: '\x1b[35m%s\x1b[0m', warn: '\x1b[33m%s\x1b[0m', info: '\x1b[36m%s\x1b[0m', trace: '\x1b[37m%s\x1b[0m', debug: '\x1b[32m%s\x1b[0m' },
- set -> true,
- get -> true
- parametr 'journals':
- purpose -> stores all log settings,
- type -> Object,
- set -> false,
- get -> true
###Parameter setting
####Parameter setting 'mongoDB' Logger.set({mongoDB: mongoose});
####Parameter setting 'dirname' Logger.set({dirname: '../mylogs'});
####Parameter setting 'collection' Logger.set({collection: 'mylogs'});
####Parameter setting 'output' Logger.set( {output: { console: true, db: false, file: false } });
####Parameter setting 'colors' Logger.set( {colors: { error: '\x1b[31m%s\x1b[0m', warn: '\x1b[33m%s\x1b[0m', info: '\x1b[36m%s\x1b[0m', trace: '\x1b[37m%s\x1b[0m', debug: '\x1b[32m%s\x1b[0m' } });
####Parameter setting all Logger.set({ mongoDB: mongoose, dirname: '../mylogs', collection: 'mylogs', output: { console: true, db: false, file: false }, colors: { error: '\x1b[31m%s\x1b[0m', warn: '\x1b[33m%s\x1b[0m', info: '\x1b[36m%s\x1b[0m', trace: '\x1b[37m%s\x1b[0m', debug: '\x1b[32m%s\x1b[0m' } });
###Getting Parameters Logger.get();
###Getting the parameter Logger.get('mongoDB'); Logger.get('dirname'); Logger.get('collection'); Logger.get('output'); Logger.get('colors'); Logger.get('journals');
##Output Format
###Description The default format is as follows: => [2018-8-24 14:23:43] [WARN] [test] [warn test] Call Logger.format(['message', 'level' ,'date', 'source']) with the transfer of parameters in the array with the desired output order. Options:
- 'message' - log message.
- 'level' - log level.
- 'date' - log date.
- 'source' - log source.
###Example of creating a new format
Logger.format(['message', 'level' ,'date', 'source']);
=> [warn test] [WARN] [2018-8-24 14:23:43] [test]
Logger.format(['source', 'level' ,'date', 'message']);
=> [test] [WARN] [2018-8-24 14:23:43] [warn test]
Logger.format(['source', 'level', 'message']);
=> [test] [WARN] [warn test]
Logger.format(['message']);
=> [warn test]
##Use of a logger
###Log levels
- error
- purpose -> designed to output error,
- output color -> red,
- fatal
- purpose -> designed to output fatal,
- output color -> purple,
- warn
- purpose -> designed to output warn,
- output color -> orange,
- info
- purpose -> designed for normal output,
- output color -> blue,
- trace
- purpose -> designed to output trace,
- output color -> white,
- debug
- purpose -> designed to output debug,
- output color -> green
###Example of using logging levels test1.error('Test1 error'); test1.fatal('Test1 fatal'); test1.warn('Test1 warn'); test1.info('Test1 info'); test1.trace('Test1 trace'); test1.debug('Test1 debug');
###Special conclusion A specific log can be displayed in its own way, regardless of global settings. To do this, you must pass the second parameter.
###Example of using special output test1.info('Start test nodefault', {file: true} ); test1.error('Start test nodefault', {file: true, db: true, console: false} ); test1.info('Start test nodefault', {file: false, db: false} );
Note: If any of the three parameters are not transmitted in the object. That will use the global parameter
#Example const Logger = require ('peculiar-logger'); const mongoose = require ('mongoose');
const Journal = Logger.journal();
const log = new Journal( 'Test', {file: `../logs`}, {console: true, file: false, db: false} );
try {
Logger.set({mongoDB: mongoose});
} catch ( error ) {
console.log (error);
}
log.info('Start test default');
log.info('Start test nodefault', {file: true} );
let x = Math.floor(Math.random() * (10 - 1 + 1)) + 1;
if (x < 4) {
log.warn('Result x < 4', {file: true, db: true} );
} else if {
log.info('Result x = 4');
} else {
log.error('Result x > 4', {file: true, db: true});
}
#License ISC