A simple and powerful logger for nodejs.
> npm install penlog --save
> yarn install penlog --save
import { penlog, colors } from 'penlog'
penlog.log(colors.red('hello'), 4).log(colors.blue('world!'), 4)
options: {
// where you want to write message, the default value is process.stdout
stdout: process.stdout
// where you want to write error message, the default value is process.stderr
stderr: process.stderr
// the indent size of per line,the default value is zero
indent: 0
}
import { createPenlog } from 'penlog'
createPenlog() !== createPenlog()
createPenlog({ indent: 2 }) !== createPenlog({ indent: 4 })
createPenlog('pen1') === createPenlog('pen1')
createPenlog('pen1') !== createPenlog('pen2')
createPenlog
will return a instance if Penlog Class
. If you don't provide the key option, it will return different instance every time.
import { penlog } from 'penlog'
penlog
.write('hello world!')
.write('OK!', { indent: 4 })
.writeln()
.write('Yes, Sir!')
// -- output --
/*
hello world! OK!
Yes, Sir!
*/
-
contents
: can be a string or array, when it is an array, it will be used byutil.format
. -
title
: can be a string. -
options
:-
style
: the style for multi-line content.default
means that before of pre-line content will be empty;space
means that before of pre-line content will be white space;title
means that before of pre-line content will be title. The default value isdefault
. -
error
: whether to use stderr instead stdout. The default value isfalse
. -
indent
: the length of indentation before this log. The default value is zero. -
join
: the string for concat pre-line content. The default value is\n
. -
newline
: whether output\n
at the end of log, the default value isfalse
. -
space
: the string between title and content. The default value is white space.
-
This is same as write()
, but options.newline
is true
.
import { penlog } from 'penlog'
penlog
.log('line1')
.log('line2')
.log('line3', 'title')
.log('line4\nline5', 'title4-5')
.log('line6\nline7', 'title6-7', { style: 'default' })
// -- output --
/*
line1
line2
title line3
title4-5 line4
line5
title6-7 line6
line7
*/
import { penlog } from 'penlog'
penlog.log('line1\nline2', { join: '|' })
// -- output --
/*
line1|line2
*/
import { penlog } from 'penlog'
penlog.log('line1\nline2', { indent: 4 })
// -- output --
/*
line1
line2
*/
import { penlog } from 'penlog'
penlog
.info('information1')
.info('information2-1\ninformation2-2')
.info('information3', ' I ')
import { penlog } from 'penlog'
penlog
.warn('warning1')
.warn('warning2-1\nwarning2-2')
.warn('warning3', ' W ')
import { penlog } from 'penlog'
penlog
.error('error1')
.error('error2-1\nerror2-2')
.error('error3', ' E ')
import { penlog } from 'penlog'
penlog
.success('success1')
.success('success2-1\nsuccess2-2')
.success('success3', ' S ')
import { penlog } from 'penlog'
penlog
.indent(4)
.log('line1')
.indent(4)
.log('line2')
.indent(-4)
.log('line3')
// -- output --
/*
line1
line2
line3
*/
Indent output with size number.
table
is exported from package text-table
loading
is exported from package ora
import { colors } from 'penlog'
colors
is exported from package colors/safe
import { symbols } from 'penlog'
symbols
is exported from package log-symbols
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
penlog © blackcater, Released under the MIT License.
Authored and maintained by blackcater with help from contributors (list).
http://www.blackcater.win · GitHub @blackcater