Tgsnake Log
This framework is used to better display logs on your console or terminal.
Available log levels
This framework using env
in node and localStorage
in browser for betters performance :
LOGLEVEL
: To save the log level. So only declaring in one instance, all instance can read that log level.LOGFILTERS
: To save any instance that can display context on console or terminal (according to the name that was given at the time of initialization). default isall,unamed
.LOGWARNINGLEVEL
: To save the warning level.debug
orverbose
: To showing all level in terminal.info
: Shows only context with levelinfo
on console or terminal.error
: Shows only context with levelerror
on console or terminal.warn
: Shows only context with levelwarn
(warning
) on console or terminal.none
: Will not display anything on console or terminal
How to use
const { Logger } = require('@tgsnake/log');
const log = new Logger({
name: 'some-string-without-space-here',
level: ['debug'], // default level for this log
});
log.log('Hello World'); // (name) info - Hello World DD/MM/YY hh:mm:ss.ms
Class Method
log
: Print log without template.info
: Print log as info level.error
: Print log as error level.warning
: Print log as warning level.combine
: Print log as multiple level.debug
: Print log as debug level.setLogLevel
: Setting the log level.setWarningLevel
: Setting the warning level.hard
if you want show the context in all log level,soft
if you want show the context only inwarning
ordebug
orverbose
level.setFilters
: Setting any instance that can display context in the console or terminal.
Capturing log
The log capture feature is only available on node js and deno platforms, not available for browsers!
To capture logs we use env as the trigger. When in the env have CAPTURELOG
The capture function will automatically work and stop when the program is finished (beforeExit
event on node and beforeunload
event on deno) or when it is forced to stop due to an error (unhandledRejection
event on node and unhandledrejection
on deno).
The log will be captured in the form of a log file with filename format: {name}-{Date.now()}.log
and will be saved in the current work dir (cwd).
Value of env CAPTURELOG
is name of logger or can be 'all'
for each instance the logger runs the capture function.
Example :
CAPTURELOG=tgsnake
With the example above, only the instance named tgsnake
performs the capture function.
CAPTURELOG=all
With the example above, all of the instance logger will be performs the capture function.
You don’t need to create an .env file, you can do it like this :
CAPTURELOG="all" node index.js
Options
parameter | type | description |
---|---|---|
name | string | Name of logger instance, default is unamed |
level | Array of debug , none , info , error , verbose |
The level of the logger. By default it will take the value from the env LOGLEVEL or if it is not available it will automatically go into debug level |
customColor | Color | Console color customization |
Color
On deno supports chalk v5 customization while on node supports chalk v4 customization. For RGB, HSL (only for node), HSV (only for node), HWB (only for node), you can use the format: format(a,b,c)
example rgb(0,0,0)
or hsl(0,0,0)
. And you can directly provide the hex code (eg: #fff
). In nodes, you can also use keywords from CSS like orange
.
category | type | description |
---|---|---|
name | string | color of logger name |
date | string | color of date |
debug | string | color when debug level and verbose level |
info | string | color when info level |
error | string | color when error level |
warning | string | color when warning level |
Example
const { Logger } = require("@tgsnake/log")
const log = new Logger({
name : "some-string-without-space-here",
level : ["debug"] // default level for this log,
customColor : {
debug: 'blue',
info: 'rgb(0,255,0)',
error: '#ff0505',
warning: 'hsv(44,98,100)',
name: 'azure',
date: 'grey',
}
})
MIT LICENSE
Build with ♥️ by tgsnake dev.