@bristlecone-labs/neo-logger-sdk
v2.0.1
Published
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.2.0.
Downloads
2
Readme
NeoLoggerSdk
This library was generated with Angular CLI version 7.2.0.
Summary
Programmers frequently use console.log to record errors or other informational messages in their Angular applications. Although this is fine while debugging your application, it’s not a best practice for production applications. As Angular is all about services, it’s a better idea to create a logging service that you can call from other services and components. In this logging service, you can still call console.log, but you can also modify the service later to record messages to store them in local storage or a database table via the Web API.
A Simple Logging Service
To get started, create a very simple logging service that only logs to the console. The point here is to replace all of your console.log statements in your Angular application with calls to a service.
A logger has different levels of logging:
'audit', 'error', 'warn', 'info', 'debug' Each of these log levels has its own method on the logging instance. You can set the maximum log level on a logger at runtime.
- info(logMessage: string, appName: string, userEmail: string, source?: string, stackTrace?: string)
- error(logMessage: string, appName: string, userEmail: string, source?: string, stackTrace?: string)
- warn(logMessage: string, appName: string, userEmail: string, source?: string, stackTrace?: string)
- debug(logMessage: string, appName: string, userEmail: string, source?: string, stackTrace?: string)
- audit(logMessage: string, appName: string, userEmail: string)
- fileLineage(logMessage: string, appName: string, userEmail: string, filePath: string)
source and stackTrace will be optional. Audit type logging will be user audit and file audit(fileLineage).
How to use neo-logger-sdk
npm i @bristlecone-labs/neo-logger-sdk
import NeoLoggerSdkService in particular component like below
Example
import { Component } from '@angular/core';
import { NeoLoggerSdkService } from '@bristlecone-labs/neo-logger-sdk';
@Component({
selector: 'al-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'al';
constructor(private loggerService: NeoLoggerSdkService) {
this.loggerService.audit('Login to App', 'NEO Data Platform', '[email protected]');
this.loggerService.fileLineage('test.csv file is downloaded', 'NEO Data Platform', '[email protected]', 's3n://us-east-1-neo-dev-data-lake-raw/test.csv');
this.loggerService.info('Getting Logs', 'NEO Data Platform', '[email protected]', 'app.component.ts');
}
}
While ingesting any logs appName and userEmail is required. Application will push the logs through log ingestion api to Athena DB.
Code scaffolding
Run ng generate component component-name --project neo-logger-sdk
to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module --project neo-logger-sdk
.
Note: Don't forget to add
--project neo-logger-sdk
or else it will be added to the default project in yourangular.json
file.
Build
Run ng build neo-logger-sdk
to build the project. The build artifacts will be stored in the dist/
directory.
Publishing
After building your library with ng build neo-logger-sdk
, go to the dist folder cd dist/neo-logger-sdk
and run npm publish
.
Running unit tests
Run ng test neo-logger-sdk
to execute the unit tests via Karma.
Further help
To get more help on the Angular CLI use ng help
or go check out the Angular CLI README.