@xom9ik/logger v0.7.8
@xom9ik/logger
Logger with scopes
โจ Features
- ๐งจ possibility of changing scopes;
- ๐ many palettes with amazing colors;
- ๐ฃ fully customizable;
- ๐ simple API;
๐งฒ Install
๐ฆ Via NPM
npm install @xom9ik/logger --save
๐งถ Via Yarn
yarn add @xom9ik/logger
๐ฅ Usage
๐ช Basic logger
const logger = require('@xom9ik/logger');
logger.server.info('Server has been started');
logger.database.trace('MongoDB connection established');
logger.client.error('Connection to wss://server.com/ refused');
logger.client.debug(`User data for ${id}:`, data);
โ๏ธ Custom logger
It is possible to set your scopes and levels, the choice of custom colors.
To do this, pass 3 optional parameters to the setup
method. loggerConfig
,activeLogs
, options
const logger = require('@xom9ik/logger');
logger.setup(loggerConfig, [activeLogs, options]);
Setup params
loggerConfig
Represents an object, with fields, which is an object for representing a scope.
The field scope includes color
andlevels
.
color
- is the color for the scope.
levels
- an object for representing levels, where the value is the color for the level.
activeLogs
Represents an object, with scope fields and an array for levels (if any). When configuring a logger without levels, the value true
is used.
options
reverseOrder
- Changes the output order for scope and level. The default isfalse
.timestamp
- Time display in the format1970/00/00 01:01:01.001
. The default istrue
.spaceSymbol
- A symbol that separates scope and level. The default isspace
.
๐ก Info
Basic Scopes
server
client
database
Basic Levels
error
warning
info
trace
debug
Basic Palettes
flat
american
aussie
british
canadian
chinese
dutch
french
german
To get an object with all the palettes
, you can call the getPalettes
method
๐งญ Examples
loggerConfig
const loggerConfig = {
server: {
color: palettes.flat.turquoise,
},
mongodb: {
color: palettes.flat.emerald,
levels: {
info: palettes.flat.peterRiver,
warning: palettes.flat.amethyst,
error: palettes.flat.wetAsphalt,
},
},
grpc: {
color: palettes.flat.greenSea,
levels: {
data: palettes.flat.nephritis,
systemInfo: palettes.flat.belizeHole,
},
},
beautifulScope: {
color: palettes.flat.wisteria,
levels: {
yourCustomLogLevel: "#f7ea98",
second: palettes.flat.mightBlue,
third: "#9e4267",
fourth: "#736408",
},
},
};
activeLogs
const activeLogs = {
server: true,
client: ['info', 'warning', 'error'],
database: ['warning'],
beautifulScope: ['yourCustomLogLevel', 'fourth'],
};
options
const options = {
reverseOrder: false,
timestamp: true,
spaceSymbol: ' - ',
};
Output
logger.beautifulScope.yourCustomLogLevel('Please, output this log message');
// 1970/00/00 01:01:01.001 [BEAUTIFULSCOPE] - [YOURCUSTOMLOGLEVEL] Please, output this log message
logger.server('This scope has no levels');
// 1970/00/00 01:01:01.001 [SERVER] This scope has no levels
logger.beautifulScope.second('This level is not activated, messages will not be displayed');
Thanks to:
๐ธ flatuicolors for inspirational colors
; https://flatuicolors.com๐ฆ package Chalk for the provided functionality
; https://www.npmjs.com/package/chalk
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago