https://github.com/cheton/universal-logger
A universal logging library for Node and the browser.
https://github.com/cheton/universal-logger
Last synced: 5 months ago
JSON representation
A universal logging library for Node and the browser.
- Host: GitHub
- URL: https://github.com/cheton/universal-logger
- Owner: cheton
- License: mit
- Created: 2017-05-06T15:34:38.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2019-08-27T11:42:02.000Z (over 6 years ago)
- Last Synced: 2024-10-30T00:00:18.678Z (about 1 year ago)
- Language: JavaScript
- Homepage: https://cheton.github.io/universal-logger/
- Size: 139 KB
- Stars: 12
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome_frontend_development_resources - universal-logger - A universal logging library for Node and the browser. (Logging / React Components)
- awesome - universal-logger - A universal logging library for Node and the browser. (Logging / React Components)
README
# universal-logger [](https://travis-ci.org/cheton/universal-logger) [](https://coveralls.io/github/cheton/universal-logger?branch=master)
[](https://www.npmjs.com/package/universal-logger)
**A universal logging library for Node and the browser**

## Installation
```sh
npm install --save universal-logger
```
### Browser
Use [universal-logger-browser](https://github.com/cheton/universal-logger-browser/) to display logs in the browser console.
```sh
npm install --save universal-logger-browser
```
## Usage
```js
import emoji from 'node-emoji';
import logger, { TRACE, DEBUG, INFO, WARN, ERROR, OFF } from 'universal-logger';
import { minimal } from 'universal-logger-browser';
const log = logger() // Returns the global logger instance
.use(minimal())
.on('log', (context, messages) => {
// Custom log processing
});
log.disableStackTrace();
log.setLevel(TRACE);
log.log(INFO, 'The logger has initialized');
log.trace(emoji.get('mostly_sunny'));
log.debug(emoji.get('sun_small_cloud'));
log.info(emoji.get('barely_sunny'));
log.warn(emoji.get('rain_cloud'));
log.error(emoji.get('lightning_cloud'));
```

### Log Level
```js
log.getLevel();
log.setLevel(TRACE);
log.setLevel(OFF); // Turn off logging
```
### Custom Log Level
```js
import logger, { defineLogLevel } from 'universal-logger';
import { minimal } from 'universal-logger-browser';
const SILLY = defineLogLevel('silly', 0);
const VERBOSE = defineLogLevel('verbose', 1);
const INFO = defineLogLevel('info', 2);
const WARN = defineLogLevel('warn', 3);
const ERROR = defineLogLevel('error', 4);
const FATAL = defineLogLevel('fatal', 5);
const log = logger()
.use(minimal());
log.setLevel(SILLY);
log.log(SILLY, 'Custom Log Level');
```
### Enable/Disable Stack Trace
```js
log.enableStackTrace();
log.disableStackTrace();
```
### Custom Log Processing
```js
log.on('log', (context, messages) => {
// Custom log processing
});
```
### Namespace

```js
import emoji from 'node-emoji';
import logger, { DEBUG } from 'universal-logger';
import { minimal } from 'universal-logger-browser';
const namespace = emoji.get('rainbow');
const contextLog = logger(namespace) // Returns a logger instance with the given namespace
.use(minimal())
.on('log', (context, messages) => {
console.log('Custom log processing:', context, messages);
});
contextLog.enableStackTrace();
contextLog.setLevel(DEBUG);
contextLog.trace(emoji.get('mostly_sunny'));
contextLog.debug(emoji.get('sun_small_cloud'));
contextLog.info(emoji.get('barely_sunny'));
contextLog.warn(emoji.get('rain_cloud'));
contextLog.error(emoji.get('lightning_cloud'));
```
## Browser Logging
https://github.com/cheton/universal-logger-browser
### Minimal

```js
import logger, { TRACE } from 'universal-logger';
import { minimal } from 'universal-logger-browser';
const log = logger()
.use(minimal());
log.enableStackTrace();
log.setLevel(TRACE);
log.log(INFO, 'The logger has initialized');
log.trace(emoji.get('mostly_sunny'));
log.debug(emoji.get('sun_small_cloud'));
log.info(emoji.get('barely_sunny'));
log.warn(emoji.get('rain_cloud'));
log.error(emoji.get('lightning_cloud'));
```
### Styleable

```js
import logger, { TRACE } from 'universal-logger';
import { styleable } from 'universal-logger-browser';
const log = logger()
.use(styleable({
showTimestamp: true
}));
log.enableStackTrace();
log.setLevel(TRACE);
log.log(INFO, 'The logger has initialized');
log.trace(emoji.get('mostly_sunny'));
log.debug(emoji.get('sun_small_cloud'));
log.info(emoji.get('barely_sunny'));
log.warn(emoji.get('rain_cloud'));
log.error(emoji.get('lightning_cloud'));
```
## Plugins
* [universal-logger-browser](https://github.com/cheton/universal-logger-browser) - Browser plugins for universal logger.
## License
MIT