ngx-logger-factory
Version:
Library QuickStart package.json from the documentation, supplemented with testing support
87 lines (64 loc) • 2.29 kB
Markdown
# Warning
This logger is under active development and hasn't yet reached its final form.
It may not be fully compatible with current versions of Angular.
# Ngx-logger
[![Build Status][travis-badge]][travis-badge-url]
This is a simple library to log in Angular
Features:
- a simple logger service
- a simple log consumer which log in console
- unit tests for the library
- a demo application
Common tasks are present as npm scripts:
- `npm start` to run a live-reload server with the demo app
- `npm run test` to test in watch mode, or `npm run test:once` to only run once
- `npm run build` to build the library
- `npm run lint` to lint
- `npm run clean` to clean
- `npm run integration` to run the integration e2e tests
- `npm install ./relative/path/to/lib` after `npm run build` to test locally in another app
[travis-badge]: https://travis-ci.org/julienbourgain/angular-ngx-logger.svg?branch=master
[travis-badge-url]: https://travis-ci.org/julienbourgain/angular-ngx-logger
*To use this librairie :*
```typescript
@NgModule({
imports: [
LoggerModule.forRoot(LogLevelEnum.debug) // Set here the minimum log level
],
providers: [
ConsoleConsumer // Provide one or many Consumers
]
})
export class LoggerModule {
// Inject eager provider to avoid lazy loading for this
constructor(private consoleConsumer: ConsoleConsumer) {}
}
```
*To write some log consumers :*
```typescript
@Injectable()
export class ConsoleConsumer {
constructor(private loggerService: LoggerService) {
loggerService.getLogs()
.subscribe(log => console[LogLevelEnum[log.level]](... log.payload));
}
}
```
Just replace `console[LogLevelEnum[log.level]](... log.payload)` with your own code and instantiate your consumer.
*For use the logger :*
You have to inject in your constructor the LoggerService and get an new instance given the class name (prefix) and use this instance for log the information
Example:
```typescript
export class AppComponent implements OnInit {
logger: Logger;
constructor(loggerService: LoggerService) {
this.logger = loggerService.create(this.constructor.name);
}
ngOnInit() {
this.logger.log('Init App component');
setInterval(() => {
this.logger.warn('Interval', new Date());
}, 1000);
}
}
```