GitHub - nuxt/consola: ? Elegant Console Logger
source link: https://github.com/nuxt/consola
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
Consola
Elegant Console Logger
Why?
- Easy to use
- Fancy output with Fallback for CI environments
- A global mockable stdout/stderr wrapper
- Pluggable reporters
- Consistance CLI experience
- Scoped Loggers
Installation
Using yarn:
yarn add consola
Usin npm:
npm i consola
Getting started
const consola = require('consola') // See types section for all available types consola.start('Starting build') consola.success('Built!') consola.info('Reporter: Some info') consola.error(new Error('Foo'))
[2:17:17 PM] Starting build [2:17:17 PM] [TEST] Log from test scope [2:17:18 PM] Built! [2:17:18 PM] Some info [2:17:18 PM] Error: Foo
Minimal Reporter (CI)
Scopeed Loggers
You can group logs using an scope:
const logger = consola.withScope('test') logger.info('Log from test scope') // [Test] Log from test scope
Reporters
You can choose between one of the built-in reporters or bring your own.
By default FancyReporter
is registered for modern terminals or BasicReporer
will be used if running in limited environments such as CIs.
Available reporters:
Please see Examples for usage info.
Creating your own reporter
A reporter is nothing more than a Class or Object that should expose log(logObj)
method.
See implementations to get idea how to write your own.
Types
You can think of types like extended logging levels in Consola's world.
A list of all available default types is here.
Creating a new instance
Consola has a global instance and it is recommanded to use it everywehre. In case that you need more control, you can create a new instance too.
const { Consola, BasicReporter } = require('consola') const consola = new Consola({ level: 30, reporters: [], types: [] }) consola.add(BasicReporter)
API
consola.<type>([logObj|message|error])
Log to all reporters. If a plain string or error is given it will be automatically translated to a logObject.
add(reporter)
Register a custom reporter instance.
remove(reporter)
Remove a registered reporter.
clear()
Remove all current reporters (Useful for writing tests).
withDefaults(defaults)
Creat a wrapper interface with all types available and defaults
applied to all logs.
withScope(scope)
Shortcut to withDefaults({ scope })
.
logObject
logObject is a free-to-extend object which will be passed into reporters.
Here are standard possible fields:
Common fields:
message
date
scope
Extended fields:
clear
badge
additional
Integrations
With jest
consola.clear().add({ log: jest.fn() })
With jsdom
{ virtualConsole: new jsdom.VirtualConsole().sendTo(consola) }
License
MIT
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK