2.0.1 • Published 2 years ago

@bristlecone-labs/neo-logger-sdk v2.0.1

Weekly downloads
-
License
-
Repository
-
Last release
2 years ago

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.

  1. info(logMessage: string, appName: string, userEmail: string, source?: string, stackTrace?: string)
  2. error(logMessage: string, appName: string, userEmail: string, source?: string, stackTrace?: string)
  3. warn(logMessage: string, appName: string, userEmail: string, source?: string, stackTrace?: string)
  4. debug(logMessage: string, appName: string, userEmail: string, source?: string, stackTrace?: string)
  5. audit(logMessage: string, appName: string, userEmail: string)
  6. 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', 'neoadmin@bristlecone.com');
    this.loggerService.fileLineage('test.csv file is downloaded', 'NEO Data Platform', 'neoadmin@bristlecone.com', 's3n://us-east-1-neo-dev-data-lake-raw/test.csv');
     this.loggerService.info('Getting Logs', 'NEO Data Platform', 'neoadmin@bristlecone.com', '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 your angular.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.

2.0.1

2 years ago

2.0.0

2 years ago

1.5.1

2 years ago