The SonatLogger
class extends the AWS Lambda Powertools Logger to provide enhanced logging capabilities for your AWS Lambda functions. It includes additional configuration options and custom log formatters.
[!NOTE] > This package is a work in progress. The purpose of this package is to be able to create a logger instance and configure it with one single command. Huge shoutout to the team behind AWS Lambda Powertools Logger for their great work with their package
@aws-lambda-powertools/logger
.
npm install @sonat-aws-tools/lamda-logger-ts
import { SonatLogger } from '@sonat-aws-tools/lamda-logger-ts';
const logger = new SonatLogger({
serviceName: 'MyService',
environment: 'production',
timeZone: 'UTC',
formatter: 'detailed',
metricNamespace: 'MyServiceMetrics',
logLevelThreshold: 'info',
logEvents: true,
loggerSampleRate: '0.1',
});
logger.info('This is an info log');
[!TIP] To be able to set the formatter and environment params you need to use the enums by importing the SonatLoggerParams.
import { SonatLogger, SonatLoggerParams } from "@sonat-aws-tools/lamda-logger-ts";
- serviceName: The name of the service using the logger.
- environment: The environment in which the logger is running (e.g., ‘dev’, ‘prod’).
- timeZone: The time zone to be used for logging timestamps.
- formatter: The log formatter to be used. Options are ‘compact’ or ‘detailed’.
- metricNamespace: The namespace for metrics.
- logLevelThreshold: The threshold for log levels (e.g., ‘info’, ‘error’).
- logEvents: Whether to log events.
- loggerSampleRate: The sample rate for logging.
const logger = new SonatLogger({
serviceName: 'MyService',
environment: 'development',
timeZone: 'UTC',
formatter: 'compact',
metricNamespace: 'MyServiceMetrics',
logLevelThreshold: 'debug',
logEvents: false,
loggerSampleRate: '1.0',
});
logger.debug('This is a debug log');
-
getPackageVersion: Retrieves the package version and name from
package.json
. - setEnvironmentValiablesForLogger: Sets environment variables for the logger based on the provided options.