@yucom/logger
v0.2.0
Published
Preconfigured event logger
Downloads
6
Readme
Alfa-Logger
Preconfigured logger for most uses.
How to use
Set Up
npm install @yucom/logger --save
First of all, set where to log to.
const Logger = require('@yucom/logger')
Logger.logTo("/path/to/log")
Valid values are "console", "stdout" (synonym of "console"), "docker" (currently uses stdout) and a path to a folder.
If a folder is specified, when in production mode (environment variable NODE_ENV
has value production
) folder is created if not exist and log files are created there. Files are rotated dialy and old files are conserved for 5 days and finally deleted.
When not in production environment, logs to the console, ignoring the folder.
Log level is also preconfigured based on environment. In production, only error
and warn
are logged. When not in production, all levels are shown.
If @yucom/context
is installed, variable txid is included in log
Begin To Write
In your program files, just write:
const Logger = require('@yucom/logger')
Logger.debug("This is my first message")
//[2018-11-22T04:08:55.017Z] DEBUG: This is my first message
Logger.error("This is my first error")
//[2018-11-22T04:09:55.017Z] ERROR: This is my first error
try {
(null).jump() //
} catch(err) {
Logger.error(err)
}
//[2018-11-22T04:22:19.249Z] ERROR: TypeError: Cannot read property 'jump' of null
Available methods/levels, sorted from less to more important are:
silly
debug
verbose
info
warn
error
All of then takes any
as argument.
Scoped Loggers
In previous examples a global logger is used. In practice, it is recommended to do all your stuff with a scoped logger. A scoped logger is exactly like the global logger but it's created with a label which is shown at the begining of every message.
//Notice the scope as an argument at the end of this line
const Logger = require('@yucom/logger')('my-module')
Logger.debug("This is my first message")
//[2018-11-22T04:08:55.017Z][my-module] DEBUG: This is my first message
// ^--- Here it is!