Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shellscape/loglevelnext
A modern logging library for Node.js that provides log level mapping to the console
https://github.com/shellscape/loglevelnext
browser-logging browsers console console-error console-info console-log console-logger console-warn log log-level logger logging loglevel
Last synced: 3 days ago
JSON representation
A modern logging library for Node.js that provides log level mapping to the console
- Host: GitHub
- URL: https://github.com/shellscape/loglevelnext
- Owner: shellscape
- License: mpl-2.0
- Created: 2017-12-16T03:48:36.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2023-10-18T02:52:52.000Z (over 1 year ago)
- Last Synced: 2025-01-22T06:11:24.850Z (11 days ago)
- Topics: browser-logging, browsers, console, console-error, console-info, console-log, console-logger, console-warn, log, log-level, logger, logging, loglevel
- Language: TypeScript
- Homepage:
- Size: 825 KB
- Stars: 39
- Watchers: 4
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
[tests]: https://img.shields.io/circleci/project/github/shellscape/loglevelnext.svg
[tests-url]: https://circleci.com/gh/shellscape/loglevelnext
[cover]: https://codecov.io/gh/shellscape/loglevelnext/branch/master/graph/badge.svg
[cover-url]: https://codecov.io/gh/shellscape/loglevelnext
[size]: https://packagephobia.now.sh/badge?p=loglevelnext
[size-url]: https://packagephobia.now.sh/result?p=loglevelnext
[loglevel]: https://githhub.com/pimterry/loglevel
[loglevelpre]: https://github.com/kutuluk/loglevel-plugin-prefix
[methodfactory]: lib/factory/MethodFactory.js
[prefixfactory]: lib/factory/PrefixFactory.js
[![tests][tests]][tests-url]
[![cover][cover]][cover-url]
[![size][size]][size-url]# loglevelnext
`loglevelnext` is a modern logging library for Node.js and modern browsers, written with modern patterns and practices which provides log level mapping of the `console` object.
For browser use, or use in client-side applications, `loglevelnext` should be bundled by your preferred bundler or compiler, such as [Rollup](https://rollupjs.org).
## Getting Started
First thing's first, install the module:
```console
npm install loglevelnext --save
```## Usage
Users can choose to use `loglevelnext` in Node.js or in the client (browser).
```js
const log = require('loglevelnext');log.info('bananas!');
```## Log Levels
By default `loglevelnext` ships supporting the following log level name-value
pairs:```js
{
TRACE: 0,
DEBUG: 1,
INFO: 2,
WARN: 3,
ERROR: 4,
SILENT: 5
}
```## Default Logger
When requiring `loglevelnext` in Node.js the default export will be an instance of [`LogLevel`](docs/LogLevel.md) wrapped with some extra sugar.
### Methods
Please see [`LogLevel`](docs/LogLevel.md) for documentation of all methods and properties of every log instance, including the default instance.
#### `trace`, `debug`, `info`, `warn`, `error`
These methods correspond to the available log levels and accept parameters identical to their `console` counterparts. e.g.
```js
console.info('...');
console.info('...');
// ... etc
```#### `create(options)`
Returns a new `LogLevel` instance. The `options` parameter should be an `Object` matching the options for the [`LogLevel`](docs/LogLevel.md) constructor.
_Note: `LogLevel` instances created are cached. Calling `create` with a previously used `name` will return the cached `LogLevel` instance. To create a different instance with the same `name`, assign a unique `id` property to the `options` parameter._
### Properties
#### `factories`
Type: `Array [ Class ]`
Returns an `Array` containing the factory classes available within `loglevelnext`
to outside modules. Particularly useful when creating plugins. eg.```js
const log = require('loglevelnext');
const { MethodFactory } = log.factories;
class MyFactory extends MethodFactory { ... }
```#### `loggers`
Type: `Array [ LogLevel ]`
Returns an `Array` containing references to the currently instantiated loggers.
## Factories aka Plugins
If you're used to using plugins with `loglevel`, fear not. The same capabilities
are available in `loglevelnext`, but in a much more straightforward and structured
way. `loglevelnext` supports by way of "Factories." A `Factory` is nothing more
than a class which defines several base methods that operate on the `console`
and provide functionality to a `LogLevel` instance. All factories must inherit from the
[`MethodFactory`][methodfactory] class, and may override any defined class functions.For an example factory, please have a look at the [`PrefixFactory`][prefixfactory]
which provides similar functionality as the [loglevel-prefix](loglevelpre) plugin,
and is the factory which is used when a user passes the `prefix` option to a
`LogLevel` instance.## Browser Support
As mentioned, `loglevelnext` is a logging library for Node.js and _modern_ browsers, which means the latest versions of the major browsers. When bundling or compiling `loglevelnext` for use in a browser, you should ensure that appropriate polyfills are used. e.g. Internet Explorer typically requires polyfilling both `Symbol` and `Object.assign`.
## Attribution
_This project originated as a fork of the much-loved [loglevel](loglevel) module, but has diverged and has been rewritten, and now shares similarities only in functional intent._
Base Log SVG by [Freepik](http://www.freepik.com/) from [www.flaticon.com](http://www.flaticon.com).
## Meta
[CONTRIBUTING](./.github/CONTRIBUTING)
[LICENSE (Mozilla Public License)](./LICENSE)