Better Logger with Custom Level and Outputer Taking over the original console
Support All Browsers which can Display on page or in Console, for Phone and old IE debugging, support wechat miniprogram
npm i min-log
var log = require('min-log')
log.debug('hello')
If you already has a project with console.log
, just add a plugin to webpack config
then min-log
will take over all consoles and hide all logs by default
plugins: [
new webpack.ProvidePlugin({
console: 'min-log'
})
]
If want have logger with namespace
e.g. animal.js
, use filename as log namespace to take over console
const console = require('min-log').getLogger('animal')
debug with namespace like package name
var log = require('min-log').getLogger('com:foo')
log.debug('this file log')
var log = require('min-log')
if (log.isDebugEnabled()) {
doSomeMockThing()
}
min-log
default enable history, default history size is 3000
Api | Description |
---|---|
log.setHistorySize(1000) |
Set history size |
log.disableHistory() |
Disable history |
log.getHistory() |
Get history |
log.clear() |
Clear history |
log.save() |
Save history |
Set Level
log.setLevel('debug') // set debug level
Level | Description |
---|---|
verbose |
Detail and verbose debug log only developper cares |
debug |
Debug log only developper cares |
info |
Normal info user should care like login or logout |
warn |
Some waring user should care like cookie expired |
error |
Some serious error user should care like server return error |
fatal |
Some fatal error which will crash the program |
Set Outputer
log.setOutputer('browser_color') // set browser color outputer
Outputer | Usage |
---|---|
console |
Simple console output like console.log |
node_console |
Print log with color in node |
browser_console |
Print log with color in browser |
browser_html |
Print log in document by html (for old IE or phone website) |
vconsole |
Remote call vConsole to print log |
eruda |
Remote call Eruda to print log |
If you like tj@debug and just use debug
level, you can do this
var debug = require('min-log/debug')('http')
debug('booting')
You can set log config for min-log
Name | Purpose |
---|---|
log_name |
Enables/disables specific debugging namespaces |
log_level |
Set log level like debug |
log_outputer |
Set outputer like browser_html |
min-log
will try to get user config from three ways in order
Query
in page url e.g.my.site.com/path?log_name=*&log_level=debug&log_output=browser_html
localStorage
e.g.localStorage.log_level = debug
Environment
e.g.log_level=debug log_name=main* node app.js
set log colors
log.setColors(['#f8f8f2', 'goldenrod', '#66d9ef', '#a6e22e', '#e6db74', '#f92672'])
set log namespace prefix
log.setPrefix('com:company:')
TODO
Formatter | Representation |
---|---|
%O |
Pretty-print an Object on multiple lines |
%o |
Pretty-print an Object all on a single line |
%s |
String |
%d |
Number |
%j |
JSON |
%% |
Single percent sign ('%'). This does not consume an argument |