diff options
| author | ruki <waruqi@gmail.com> | 2018-11-08 00:38:48 +0800 |
|---|---|---|
| committer | ruki <waruqi@gmail.com> | 2018-11-07 21:53:09 +0800 |
| commit | 26105034da4fcce7ac883c899d781f016559310d (patch) | |
| tree | c459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/consola/README.md | |
| parent | 2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff) | |
| download | xmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip | |
switch to vuepress
Diffstat (limited to 'node_modules/consola/README.md')
| -rw-r--r-- | node_modules/consola/README.md | 184 |
1 files changed, 184 insertions, 0 deletions
diff --git a/node_modules/consola/README.md b/node_modules/consola/README.md new file mode 100644 index 00000000..2d24fb1f --- /dev/null +++ b/node_modules/consola/README.md @@ -0,0 +1,184 @@ +# Consola + +Elegant Console Logger + +## Why Consola? + +- Easy to use +- Fancy output with Fallback for Continuous Integration (CI) environments +- Global mockable stdout/stderr wrapper +- Pluggable reporters +- Consistent Command Line Interface (CLI) experience +- Scoped Loggers + +## Installation + +Using yarn: + +```bash +yarn add consola +``` + +Using npm: + +```bash +npm i consola +``` + +## Getting started + +```js +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')) +``` + +<div align="center"> +<br> +<img src="./assets/screen1.png" width="600px"> +<p>Fancy Reporter</p> +<br> +</div> + +<pre> +[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 +</pre> +<div align="center"> +<p>Minimal Reporter (CI)</p> +<br> +</div> + +## Scoped Loggers + +Group logs using a scope: + +```js +const logger = consola.withScope('test') + +logger.info('Log from test scope') // [Test] Log from test scope +``` + +## Reporters + +Choose between one of the built-in reporters or bring own reporter. + +By default `FancyReporter` is registered for modern terminals or `BasicReporter` will be used if running in limited environments such as CIs. + +Available reporters: + +- [BasicReporter](./src/reporters/basic.js) +- [FancyReporter](./src/reporters/fancy.js) +- [JSONReporter](./src/reporters/json.js) +- [WinstonReporter](./src/reporters/winston.js) + +Please see [Examples](./examples) for usage info. + +### Creating your own reporter + +A reporter (Class or Object) exposes `log(logObj)` method. +To write a reporter, check implementations to get an idea. + +## Types + +Types can be treated as _extended logging levels_ in Consola's world. + +A list of all available default types is [here](./src/types.js). + +## Creating a new instance + +Consola has a global instance and is recommended to use everywhere. +In case more control is needed, create a new instance. + +```js +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, then the message 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)` + +Create a wrapper interface with all types available and `defaults` applied to all logs. + +- `withScope(scope)` + +Shortcut to `withDefaults({ scope })`. + +- `level` + +The level to display logs. Any logs at or above this level will be displayed. +List of available levels [here](./src/types.js) + +## logObject + +logObject is a free-to-extend object which will be passed to reporters. + +Here are standard possible fields: + +Common fields: + +- `message` +- `date` +- `scope` + +Extended fields: + +- `clear` +- `badge` +- `additional` +- `additionalStyle` (By default: `grey`) +- `icon` (Default depends on log type) + +## Integrations + +### With jest + +```js +consola.clear().add({ + log: jest.fn() +}) +``` + +### With jsdom + +```js +{ + virtualConsole: new jsdom.VirtualConsole().sendTo(consola) +} +``` + +## License + +MIT |
