npm package: @gus-eip/loggers
Description: @gus-eip/loggers is a package designed to provide logging functionality for your Node.js applications.
Author: gus
Latest version: 4.6.5

# @gus-eip/loggers

## Overview

`@gus-eip/loggers` is a package designed to provide logging functionality for your Node.js applications. It offers integration with various logging services, including CloudWatchLogger.

## Installation

You can install the package via npm:

```bash
npm install @gus-eip/loggers
```

## Usage

To use the logger module in your application, follow these steps:

1. Import `LoggerModule` from `@gus-eip/loggers` inside your module.

```javascript
import { LoggerModule } from '@gus-eip/loggers';
```

2. Configure `LoggerModule` in your module by calling the `forRoot` method.

```javascript
LoggerModule.forRoot({
  region: process.env.REGION,
  logGroupName: process.env.LOGGER_LOG_GROUP_NAME,
  options: 'CloudWatchLogger',
}),
```

Ensure you provide the necessary environment variables (`REGION` and `LOGGER_LOG_GROUP_NAME`) for configuration.

## Configuration Options

- `region`: The AWS region where your CloudWatch logs are located.
- `logGroupName`: The name of the log group where logs will be sent.
- `options`: The options for the logger. Currently, only `'CloudWatchLogger'` is supported.

## Example

```javascript
import { Module } from '@nestjs/common';
import { LoggerModule } from '@gus-eip/loggers';

@Module({
  imports: [
    LoggerModule.forRoot({
      region: process.env.REGION,
      logGroupName: process.env.LOGGER_LOG_GROUP_NAME,
      options: 'CloudWatchLogger',
    }),
  ],
})
export class AppModule {}
```

```
This repository requires AWS SSM Parameter Store access to retrieve the SQS URL dynamically. Ensure that the application has permission to read LOGGER_SQS_URL.

```

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

---

## OAP-EIP LOGGER

Whenever any EIP integration (for example: `oap-handlers`, `oap-backend`, `eip-integration-handlers`, `platform-events-listener`, or `gus-middleware-service`) introduces a new use case, event, or component, follow these steps to keep this package as the single source of truth for EIP logging:

1. Add the new use case, event and component identifiers to `enum.ts`.

2. Add a user-friendly message/label for the use case in `mappings/usecase-mapping.ts`.

3. Update `mappings/source-destination-mapping.ts` to include the use case and the corresponding brand(s) with their `source` and `destination` values. If the use case already exists and a newly onboarded brand uses it, add the brand under that existing use case entry.

Notes:

- The `mappings/source-destination-mapping.ts` file is the ultimate source of truth for EIP logger routing and should accurately reflect brand → use case → (source, destination) mappings.
- Keep `enum.ts` identifiers stable. Prefer adding new identifiers rather than renaming existing ones to avoid breaking downstream projects.

Publishing and downstream updates:

- After making changes, bump and publish this package.
- Then update the dependency version used by the `gus-eip-analytics` repository: set the new package version in the `dev` branch for development deployments and in the `prod` branch for production deployments so downstream services pick up the release.

---