2019-01-28 22:30:55 +00:00
# @pushrocks/smartlog
2019-01-28 01:03:11 +00:00
minimalistic distributed and extensible logging tool
2018-06-05 18:48:14 +00:00
2019-01-28 01:03:11 +00:00
## Availabililty and Links
* [npmjs.org (npm package) ](https://www.npmjs.com/package/@pushrocks/smartlog )
* [gitlab.com (source) ](https://gitlab.com/pushrocks/smartlog )
* [github.com (source mirror) ](https://github.com/pushrocks/smartlog )
* [docs (typedoc) ](https://pushrocks.gitlab.io/smartlog/ )
2018-01-28 03:43:55 +00:00
## Status for master
2019-01-28 01:03:11 +00:00
[![build status ](https://gitlab.com/pushrocks/smartlog/badges/master/build.svg )](https://gitlab.com/pushrocks/smartlog/commits/master)
[![coverage report ](https://gitlab.com/pushrocks/smartlog/badges/master/coverage.svg )](https://gitlab.com/pushrocks/smartlog/commits/master)
[![npm downloads per month ](https://img.shields.io/npm/dm/@pushrocks/smartlog.svg )](https://www.npmjs.com/package/@pushrocks/smartlog)
[![Known Vulnerabilities ](https://snyk.io/test/npm/@pushrocks/smartlog/badge.svg )](https://snyk.io/test/npm/@pushrocks/smartlog)
2019-01-28 22:30:55 +00:00
[![TypeScript ](https://img.shields.io/badge/TypeScript->=%203.x-blue.svg )](https://nodejs.org/dist/latest-v10.x/docs/api/)
[![node ](https://img.shields.io/badge/node->=%2010.x.x-blue.svg )](https://nodejs.org/dist/latest-v10.x/docs/api/)
2018-01-28 03:43:55 +00:00
[![JavaScript Style Guide ](https://img.shields.io/badge/code%20style-standard-brightgreen.svg )](http://standardjs.com/)
## Usage
2018-06-05 18:48:14 +00:00
2018-01-28 03:43:55 +00:00
Use TypeScript for best in class instellisense.
2019-01-22 11:44:45 +00:00
smartlog id s minimal logging package that provides a consistent experience across the complete logging stack. Smartlog allows you to create a logger instance like this:
```ts
import { Smartlog } from '@pushrocks/smartlog';
const logger = new Smartlog({
{
2019-01-30 02:23:56 +00:00
company: 'My awesome company',
companyunit: 'my awesome cloud team',
2019-01-22 11:44:45 +00:00
containerName?: 'awesome-container',
2019-01-30 02:23:56 +00:00
environment: 'kubernetes-production',
2019-01-22 11:44:45 +00:00
runtime: 'node',
zone: 'zone x'
}
})
logger.log('silly', `a silly statement` ); // log levels are shown to you by the IDE
```
There is also a default logger available that you can use:
```ts
2019-01-28 01:03:11 +00:00
import { Smartlog, defaultLogger } from '@pushrocks/smartlog';
2019-01-22 11:44:45 +00:00
export class MyAwesomeClass {
constructor(public logger: Smartlog = defaultLogger) {
// what happens here that a instance of this class will have instance.logger available
// if you set a custom logger, than that will be used, if not the default logger.
}
}
```
### Destinations
2019-01-28 01:03:11 +00:00
2019-01-22 11:44:45 +00:00
smartlog supports different kinds of destinations.
The following destinations are available:
2019-01-28 01:03:11 +00:00
- [@pushrocks/smartlog-destination-local ](https://www.npmjs.com/package/@pushrocks/smartlog-destination-local ) - outputs logs to the local console in a colorful, nice to read way.
- [@pushrocks/smartlog-destination-devtools ](https://www.npmjs.com/package/@pushrocks/smartlog-destination-devtools ) - outputs logs into the browser console in a colorful, nice to read way.
- [@pushrocks/smartlog-destination-receiver ](https://www.npmjs.com/package/@pushrocks/smartlog-destination-receiver ) - sends logs to a smartlog receiver (more about that below)
- [@mojoio/scalyr ](https://www.npmjs.com/package/@pushrocks/smartlog-destination-receiver ) - an scalyr API package that comes with a smartlog log destination included
- [@mojoio/elasticsearch ](https://www.npmjs.com/package/@mojoio/elasticsearch ) - an elasticsearch API package that comes with a smartlog destination included
2019-01-22 11:44:45 +00:00
2019-01-22 11:49:09 +00:00
### Adding a log destination
2019-01-28 01:03:11 +00:00
2019-01-22 11:49:09 +00:00
```
// TBD
```
2019-01-28 01:03:11 +00:00
For further information read the linked docs at the top of this readme.
2018-01-28 03:43:55 +00:00
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)
2019-01-28 01:03:11 +00:00
| By using this npm module you agree to our [privacy policy ](https://lossless.gmbH/privacy.html )
2018-01-28 03:43:55 +00:00
[![repo-footer ](https://pushrocks.gitlab.io/assets/repo-footer.svg )](https://push.rocks)