@aws-lambda-powertools/logger
Advanced tools
Comparing version 0.3.3 to 0.4.0
import { ConfigServiceInterface } from '.'; | ||
/** | ||
* Abstract class ConfigService | ||
* | ||
* This class defines common methods and variables that can be set by the developer | ||
* in the runtime. | ||
* | ||
* @class | ||
* @abstract | ||
* @implements {ConfigServiceInterface} | ||
* @see https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-runtime | ||
* @see https://awslabs.github.io/aws-lambda-powertools-typescript/latest/#environment-variables | ||
*/ | ||
declare abstract class ConfigService implements ConfigServiceInterface { | ||
/** | ||
* @see https://awslabs.github.io/aws-lambda-powertools-typescript/latest/#environment-variables | ||
* @protected | ||
*/ | ||
protected currentEnvironmentVariable: string; | ||
@@ -7,8 +23,34 @@ protected logLevelVariable: string; | ||
protected serviceNameVariable: string; | ||
/** | ||
* It returns the value of an environment variable that has given name. | ||
* | ||
* @param {string} name | ||
* @returns {string} | ||
*/ | ||
abstract get(name: string): string; | ||
/** | ||
* It returns the value of the ENVIRONMENT environment variable. | ||
* | ||
* @returns {string} | ||
*/ | ||
abstract getCurrentEnvironment(): string; | ||
/** | ||
* It returns the value of the LOG_LEVEL environment variable. | ||
* | ||
* @returns {string} | ||
*/ | ||
abstract getLogLevel(): string; | ||
/** | ||
* It returns the value of the POWERTOOLS_LOGGER_SAMPLE_RATE environment variable. | ||
* | ||
* @returns {string|undefined} | ||
*/ | ||
abstract getSampleRateValue(): number | undefined; | ||
/** | ||
* It returns the value of the POWERTOOLS_SERVICE_NAME environment variable. | ||
* | ||
* @returns {string} | ||
*/ | ||
abstract getServiceName(): string; | ||
} | ||
export { ConfigService, }; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.ConfigService = void 0; | ||
/** | ||
* Abstract class ConfigService | ||
* | ||
* This class defines common methods and variables that can be set by the developer | ||
* in the runtime. | ||
* | ||
* @class | ||
* @abstract | ||
* @implements {ConfigServiceInterface} | ||
* @see https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-runtime | ||
* @see https://awslabs.github.io/aws-lambda-powertools-typescript/latest/#environment-variables | ||
*/ | ||
class ConfigService { | ||
constructor() { | ||
// Custom environment variables | ||
/** | ||
* @see https://awslabs.github.io/aws-lambda-powertools-typescript/latest/#environment-variables | ||
* @protected | ||
*/ | ||
this.currentEnvironmentVariable = 'ENVIRONMENT'; | ||
@@ -14,2 +29,2 @@ this.logLevelVariable = 'LOG_LEVEL'; | ||
exports.ConfigService = ConfigService; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlnU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvQ29uZmlnU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxNQUFlLGFBQWE7SUFBNUI7UUFFRSwrQkFBK0I7UUFDckIsK0JBQTBCLEdBQUcsYUFBYSxDQUFDO1FBQzNDLHFCQUFnQixHQUFHLFdBQVcsQ0FBQztRQUMvQiw0QkFBdUIsR0FBRywrQkFBK0IsQ0FBQztRQUMxRCx3QkFBbUIsR0FBRyx5QkFBeUIsQ0FBQztJQVk1RCxDQUFDO0NBQUE7QUFHQyxzQ0FBYSJ9 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlnU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvQ29uZmlnU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQWUsYUFBYTtJQUE1QjtRQUVFOzs7V0FHRztRQUNPLCtCQUEwQixHQUFHLGFBQWEsQ0FBQztRQUMzQyxxQkFBZ0IsR0FBRyxXQUFXLENBQUM7UUFDL0IsNEJBQXVCLEdBQUcsK0JBQStCLENBQUM7UUFDMUQsd0JBQW1CLEdBQUcseUJBQXlCLENBQUM7SUFzQzVELENBQUM7Q0FBQTtBQUdDLHNDQUFhIn0= |
@@ -0,8 +1,41 @@ | ||
/** | ||
* Interface ConfigServiceInterface | ||
* | ||
* @interface | ||
* @see https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-runtime | ||
* @see https://awslabs.github.io/aws-lambda-powertools-typescript/latest/#environment-variables | ||
*/ | ||
interface ConfigServiceInterface { | ||
/** | ||
* It returns the value of an environment variable that has given name. | ||
* | ||
* @param {string} name | ||
* @returns {string} | ||
*/ | ||
get(name: string): string; | ||
/** | ||
* It returns the value of the ENVIRONMENT environment variable. | ||
* | ||
* @returns {string} | ||
*/ | ||
getCurrentEnvironment(): string; | ||
/** | ||
* It returns the value of the LOG_LEVEL environment variable. | ||
* | ||
* @returns {string} | ||
*/ | ||
getLogLevel(): string; | ||
/** | ||
* It returns the value of the POWERTOOLS_LOGGER_SAMPLE_RATE environment variable. | ||
* | ||
* @returns {string|undefined} | ||
*/ | ||
getSampleRateValue(): number | undefined; | ||
/** | ||
* It returns the value of the POWERTOOLS_SERVICE_NAME environment variable. | ||
* | ||
* @returns {string} | ||
*/ | ||
getServiceName(): string; | ||
} | ||
export { ConfigServiceInterface, }; |
import { ConfigService } from '.'; | ||
/** | ||
* Class EnvironmentVariablesService | ||
* | ||
* This class is used to return environment variables that are available in the runtime of | ||
* the current Lambda invocation. | ||
* These variables can be a mix of runtime environment variables set by AWS and | ||
* variables that can be set by the developer additionally. | ||
* | ||
* @class | ||
* @extends {ConfigService} | ||
* @see https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-runtime | ||
* @see https://awslabs.github.io/aws-lambda-powertools-typescript/latest/#environment-variables | ||
*/ | ||
declare class EnvironmentVariablesService extends ConfigService { | ||
@@ -8,13 +21,64 @@ private awsRegionVariable; | ||
private xRayTraceIdVariable; | ||
/** | ||
* It returns the value of an environment variable that has given name. | ||
* | ||
* @param {string} name | ||
* @returns {string} | ||
*/ | ||
get(name: string): string; | ||
/** | ||
* It returns the value of the AWS_REGION environment variable. | ||
* | ||
* @returns {string} | ||
*/ | ||
getAwsRegion(): string; | ||
/** | ||
* It returns the value of the ENVIRONMENT environment variable. | ||
* | ||
* @returns {string} | ||
*/ | ||
getCurrentEnvironment(): string; | ||
/** | ||
* It returns the value of the AWS_LAMBDA_FUNCTION_MEMORY_SIZE environment variable. | ||
* | ||
* @returns {string} | ||
*/ | ||
getFunctionMemory(): number; | ||
/** | ||
* It returns the value of the AWS_LAMBDA_FUNCTION_NAME environment variable. | ||
* | ||
* @returns {string} | ||
*/ | ||
getFunctionName(): string; | ||
/** | ||
* It returns the value of the AWS_LAMBDA_FUNCTION_VERSION environment variable. | ||
* | ||
* @returns {string} | ||
*/ | ||
getFunctionVersion(): string; | ||
/** | ||
* It returns the value of the LOG_LEVEL environment variable. | ||
* | ||
* @returns {string} | ||
*/ | ||
getLogLevel(): string; | ||
/** | ||
* It returns the value of the POWERTOOLS_LOGGER_SAMPLE_RATE environment variable. | ||
* | ||
* @returns {string|undefined} | ||
*/ | ||
getSampleRateValue(): number | undefined; | ||
/** | ||
* It returns the value of the POWERTOOLS_SERVICE_NAME environment variable. | ||
* | ||
* @returns {string} | ||
*/ | ||
getServiceName(): string; | ||
/** | ||
* It returns the value of the _X_AMZN_TRACE_ID environment variable. | ||
* | ||
* @returns {string} | ||
*/ | ||
getXrayTraceId(): string; | ||
} | ||
export { EnvironmentVariablesService, }; |
@@ -5,2 +5,15 @@ "use strict"; | ||
const _1 = require("."); | ||
/** | ||
* Class EnvironmentVariablesService | ||
* | ||
* This class is used to return environment variables that are available in the runtime of | ||
* the current Lambda invocation. | ||
* These variables can be a mix of runtime environment variables set by AWS and | ||
* variables that can be set by the developer additionally. | ||
* | ||
* @class | ||
* @extends {ConfigService} | ||
* @see https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-runtime | ||
* @see https://awslabs.github.io/aws-lambda-powertools-typescript/latest/#environment-variables | ||
*/ | ||
class EnvironmentVariablesService extends _1.ConfigService { | ||
@@ -16,11 +29,32 @@ constructor() { | ||
} | ||
/** | ||
* It returns the value of an environment variable that has given name. | ||
* | ||
* @param {string} name | ||
* @returns {string} | ||
*/ | ||
get(name) { | ||
return process.env[name]?.trim() || ''; | ||
} | ||
/** | ||
* It returns the value of the AWS_REGION environment variable. | ||
* | ||
* @returns {string} | ||
*/ | ||
getAwsRegion() { | ||
return this.get(this.awsRegionVariable); | ||
} | ||
/** | ||
* It returns the value of the ENVIRONMENT environment variable. | ||
* | ||
* @returns {string} | ||
*/ | ||
getCurrentEnvironment() { | ||
return this.get(this.currentEnvironmentVariable); | ||
} | ||
/** | ||
* It returns the value of the AWS_LAMBDA_FUNCTION_MEMORY_SIZE environment variable. | ||
* | ||
* @returns {string} | ||
*/ | ||
getFunctionMemory() { | ||
@@ -30,11 +64,31 @@ const value = this.get(this.memoryLimitInMBVariable); | ||
} | ||
/** | ||
* It returns the value of the AWS_LAMBDA_FUNCTION_NAME environment variable. | ||
* | ||
* @returns {string} | ||
*/ | ||
getFunctionName() { | ||
return this.get(this.functionNameVariable); | ||
} | ||
/** | ||
* It returns the value of the AWS_LAMBDA_FUNCTION_VERSION environment variable. | ||
* | ||
* @returns {string} | ||
*/ | ||
getFunctionVersion() { | ||
return this.get(this.functionVersionVariable); | ||
} | ||
/** | ||
* It returns the value of the LOG_LEVEL environment variable. | ||
* | ||
* @returns {string} | ||
*/ | ||
getLogLevel() { | ||
return this.get(this.logLevelVariable); | ||
} | ||
/** | ||
* It returns the value of the POWERTOOLS_LOGGER_SAMPLE_RATE environment variable. | ||
* | ||
* @returns {string|undefined} | ||
*/ | ||
getSampleRateValue() { | ||
@@ -44,5 +98,15 @@ const value = this.get(this.sampleRateValueVariable); | ||
} | ||
/** | ||
* It returns the value of the POWERTOOLS_SERVICE_NAME environment variable. | ||
* | ||
* @returns {string} | ||
*/ | ||
getServiceName() { | ||
return this.get(this.serviceNameVariable); | ||
} | ||
/** | ||
* It returns the value of the _X_AMZN_TRACE_ID environment variable. | ||
* | ||
* @returns {string} | ||
*/ | ||
getXrayTraceId() { | ||
@@ -53,2 +117,2 @@ return this.get(this.xRayTraceIdVariable); | ||
exports.EnvironmentVariablesService = EnvironmentVariablesService; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW52aXJvbm1lbnRWYXJpYWJsZXNTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9FbnZpcm9ubWVudFZhcmlhYmxlc1NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0JBQWtDO0FBRWxDLE1BQU0sMkJBQTRCLFNBQVEsZ0JBQWE7SUFBdkQ7O1FBRUUsaUNBQWlDO1FBQ3pCLHNCQUFpQixHQUFHLFlBQVksQ0FBQztRQUNqQyx5QkFBb0IsR0FBRywwQkFBMEIsQ0FBQztRQUNsRCw0QkFBdUIsR0FBRyw2QkFBNkIsQ0FBQztRQUN4RCw0QkFBdUIsR0FBRyxpQ0FBaUMsQ0FBQztRQUM1RCx3QkFBbUIsR0FBRyxrQkFBa0IsQ0FBQztJQThDbkQsQ0FBQztJQTVDUSxHQUFHLENBQUMsSUFBWTtRQUNyQixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFTSxZQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0scUJBQXFCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU0saUJBQWlCO1FBQ3RCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFFckQsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVNLGVBQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFFckQsT0FBTyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNqRSxDQUFDO0lBRU0sY0FBYztRQUNuQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FFRjtBQUdDLGtFQUEyQiJ9 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW52aXJvbm1lbnRWYXJpYWJsZXNTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9FbnZpcm9ubWVudFZhcmlhYmxlc1NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0JBQWtDO0FBRWxDOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQU0sMkJBQTRCLFNBQVEsZ0JBQWE7SUFBdkQ7O1FBRUUsaUNBQWlDO1FBQ3pCLHNCQUFpQixHQUFHLFlBQVksQ0FBQztRQUNqQyx5QkFBb0IsR0FBRywwQkFBMEIsQ0FBQztRQUNsRCw0QkFBdUIsR0FBRyw2QkFBNkIsQ0FBQztRQUN4RCw0QkFBdUIsR0FBRyxpQ0FBaUMsQ0FBQztRQUM1RCx3QkFBbUIsR0FBRyxrQkFBa0IsQ0FBQztJQWlHbkQsQ0FBQztJQS9GQzs7Ozs7T0FLRztJQUNJLEdBQUcsQ0FBQyxJQUFZO1FBQ3JCLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxZQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHFCQUFxQjtRQUMxQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxpQkFBaUI7UUFDdEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUVyRCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGVBQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksa0JBQWtCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFdBQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksa0JBQWtCO1FBQ3ZCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFFckQsT0FBTyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksY0FBYztRQUNuQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUVGO0FBR0Msa0VBQTJCIn0= |
import { LogFormatterInterface } from '.'; | ||
import { LogAttributes, UnformattedAttributes } from '../types'; | ||
/** | ||
* This class defines and implements common methods for the formatting of log attributes. | ||
* | ||
* @class | ||
* @abstract | ||
* @implements {LogFormatterInterface} | ||
*/ | ||
declare abstract class LogFormatter implements LogFormatterInterface { | ||
/** | ||
* It formats key-value pairs of log attributes. | ||
* | ||
* @param {UnformattedAttributes} attributes | ||
* @returns {LogAttributes} | ||
*/ | ||
abstract formatAttributes(attributes: UnformattedAttributes): LogAttributes; | ||
/** | ||
* It formats a given Error parameter. | ||
* | ||
* @param {Error} error | ||
* @returns {LogAttributes} | ||
*/ | ||
formatError(error: Error): LogAttributes; | ||
/** | ||
* It formats a date into a string in simplified extended ISO format (ISO 8601). | ||
* | ||
* @param {Date} now | ||
* @returns {string} | ||
*/ | ||
formatTimestamp(now: Date): string; | ||
/** | ||
* It returns a string containing the location of an error, given a particular stack trace. | ||
* | ||
* @param stack | ||
* @returns {string} | ||
*/ | ||
getCodeLocation(stack?: string): string; | ||
} | ||
export { LogFormatter, }; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.LogFormatter = void 0; | ||
/** | ||
* This class defines and implements common methods for the formatting of log attributes. | ||
* | ||
* @class | ||
* @abstract | ||
* @implements {LogFormatterInterface} | ||
*/ | ||
class LogFormatter { | ||
/** | ||
* It formats a given Error parameter. | ||
* | ||
* @param {Error} error | ||
* @returns {LogAttributes} | ||
*/ | ||
formatError(error) { | ||
@@ -13,5 +26,17 @@ return { | ||
} | ||
/** | ||
* It formats a date into a string in simplified extended ISO format (ISO 8601). | ||
* | ||
* @param {Date} now | ||
* @returns {string} | ||
*/ | ||
formatTimestamp(now) { | ||
return now.toISOString(); | ||
} | ||
/** | ||
* It returns a string containing the location of an error, given a particular stack trace. | ||
* | ||
* @param stack | ||
* @returns {string} | ||
*/ | ||
getCodeLocation(stack) { | ||
@@ -34,2 +59,2 @@ if (!stack) { | ||
exports.LogFormatter = LogFormatter; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nRm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Zvcm1hdHRlci9Mb2dGb3JtYXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsTUFBZSxZQUFZO0lBSWxCLFdBQVcsQ0FBQyxLQUFZO1FBQzdCLE9BQU87WUFDTCxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUMzQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO1NBQ25CLENBQUM7SUFDSixDQUFDO0lBRU0sZUFBZSxDQUFDLEdBQVM7UUFDOUIsT0FBTyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVNLGVBQWUsQ0FBQyxLQUFjO1FBQ25DLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxNQUFNLEtBQUssR0FBRywwQkFBMEIsQ0FBQztRQUV6QyxJQUFJLENBQUMsQ0FBQztRQUNOLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN0QyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXhDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDeEIsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUMxQztTQUVGO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0NBQ0Y7QUFHQyxvQ0FBWSJ9 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nRm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Zvcm1hdHRlci9Mb2dGb3JtYXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0E7Ozs7OztHQU1HO0FBQ0gsTUFBZSxZQUFZO0lBVXpCOzs7OztPQUtHO0lBQ0ksV0FBVyxDQUFDLEtBQVk7UUFDN0IsT0FBTztZQUNMLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQzNDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7U0FDbkIsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGVBQWUsQ0FBQyxHQUFTO1FBQzlCLE9BQU8sR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGVBQWUsQ0FBQyxLQUFjO1FBQ25DLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxNQUFNLEtBQUssR0FBRywwQkFBMEIsQ0FBQztRQUV6QyxJQUFJLENBQUMsQ0FBQztRQUNOLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN0QyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXhDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDeEIsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUMxQztTQUVGO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0NBQ0Y7QUFHQyxvQ0FBWSJ9 |
import { LogAttributes, UnformattedAttributes } from '../types'; | ||
/** | ||
* @interface | ||
*/ | ||
interface LogFormatterInterface { | ||
/** | ||
* It formats key-value pairs of log attributes. | ||
* | ||
* @param {UnformattedAttributes} attributes | ||
* @returns {PowertoolLog} | ||
*/ | ||
formatAttributes(attributes: UnformattedAttributes): LogAttributes; | ||
/** | ||
* It formats a given Error parameter. | ||
* | ||
* @param {Error} error | ||
* @returns {LogAttributes} | ||
*/ | ||
formatError(error: Error): LogAttributes; | ||
} | ||
export { LogFormatterInterface, }; |
import { LogFormatter } from '.'; | ||
import { UnformattedAttributes } from '../types'; | ||
import { PowertoolLog } from '../types/formats'; | ||
/** | ||
* This class is used to transform a set of log key-value pairs | ||
* in the AWS Lambda Powertools' default structure log format. | ||
* | ||
* @class | ||
* @extends {LogFormatter} | ||
*/ | ||
declare class PowertoolLogFormatter extends LogFormatter { | ||
/** | ||
* It formats key-value pairs of log attributes. | ||
* | ||
* @param {UnformattedAttributes} attributes | ||
* @returns {PowertoolLog} | ||
*/ | ||
formatAttributes(attributes: UnformattedAttributes): PowertoolLog; | ||
} | ||
export { PowertoolLogFormatter, }; |
@@ -5,3 +5,16 @@ "use strict"; | ||
const _1 = require("."); | ||
/** | ||
* This class is used to transform a set of log key-value pairs | ||
* in the AWS Lambda Powertools' default structure log format. | ||
* | ||
* @class | ||
* @extends {LogFormatter} | ||
*/ | ||
class PowertoolLogFormatter extends _1.LogFormatter { | ||
/** | ||
* It formats key-value pairs of log attributes. | ||
* | ||
* @param {UnformattedAttributes} attributes | ||
* @returns {PowertoolLog} | ||
*/ | ||
formatAttributes(attributes) { | ||
@@ -24,2 +37,2 @@ return { | ||
exports.PowertoolLogFormatter = PowertoolLogFormatter; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG93ZXJ0b29sTG9nRm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Zvcm1hdHRlci9Qb3dlcnRvb2xMb2dGb3JtYXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0JBQWlDO0FBSWpDLE1BQU0scUJBQXNCLFNBQVEsZUFBWTtJQUV2QyxnQkFBZ0IsQ0FBQyxVQUFpQztRQUN2RCxPQUFPO1lBQ0wsVUFBVSxFQUFFLFVBQVUsQ0FBQyxhQUFhLEVBQUUsU0FBUztZQUMvQyxZQUFZLEVBQUUsVUFBVSxDQUFDLGFBQWEsRUFBRSxrQkFBa0I7WUFDMUQsb0JBQW9CLEVBQUUsVUFBVSxDQUFDLGFBQWEsRUFBRSxlQUFlO1lBQy9ELGFBQWEsRUFBRSxVQUFVLENBQUMsYUFBYSxFQUFFLFlBQVk7WUFDckQsbUJBQW1CLEVBQUUsVUFBVSxDQUFDLGFBQWEsRUFBRSxZQUFZO1lBQzNELEtBQUssRUFBRSxVQUFVLENBQUMsUUFBUTtZQUMxQixPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU87WUFDM0IsYUFBYSxFQUFFLFVBQVUsQ0FBQyxlQUFlO1lBQ3pDLE9BQU8sRUFBRSxVQUFVLENBQUMsV0FBVztZQUMvQixTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO1lBQ3JELGFBQWEsRUFBRSxVQUFVLENBQUMsV0FBVztTQUN0QyxDQUFDO0lBQ0osQ0FBQztDQUVGO0FBR0Msc0RBQXFCIn0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG93ZXJ0b29sTG9nRm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Zvcm1hdHRlci9Qb3dlcnRvb2xMb2dGb3JtYXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0JBQWlDO0FBSWpDOzs7Ozs7R0FNRztBQUNILE1BQU0scUJBQXNCLFNBQVEsZUFBWTtJQUU5Qzs7Ozs7T0FLRztJQUNJLGdCQUFnQixDQUFDLFVBQWlDO1FBQ3ZELE9BQU87WUFDTCxVQUFVLEVBQUUsVUFBVSxDQUFDLGFBQWEsRUFBRSxTQUFTO1lBQy9DLFlBQVksRUFBRSxVQUFVLENBQUMsYUFBYSxFQUFFLGtCQUFrQjtZQUMxRCxvQkFBb0IsRUFBRSxVQUFVLENBQUMsYUFBYSxFQUFFLGVBQWU7WUFDL0QsYUFBYSxFQUFFLFVBQVUsQ0FBQyxhQUFhLEVBQUUsWUFBWTtZQUNyRCxtQkFBbUIsRUFBRSxVQUFVLENBQUMsYUFBYSxFQUFFLFlBQVk7WUFDM0QsS0FBSyxFQUFFLFVBQVUsQ0FBQyxRQUFRO1lBQzFCLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTztZQUMzQixhQUFhLEVBQUUsVUFBVSxDQUFDLGVBQWU7WUFDekMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxXQUFXO1lBQy9CLFNBQVMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7WUFDckQsYUFBYSxFQUFFLFVBQVUsQ0FBQyxXQUFXO1NBQ3RDLENBQUM7SUFDSixDQUFDO0NBRUY7QUFHQyxzREFBcUIifQ== |
import type { Context } from 'aws-lambda'; | ||
import type { ClassThatLogs, HandlerMethodDecorator, LogAttributes, LoggerOptions, LogItemExtraInput, LogItemMessage } from './types'; | ||
/** | ||
* ## Intro | ||
* The Logger utility provides an opinionated logger with output structured as JSON. | ||
* | ||
* ## Key features | ||
* * Capture key fields from Lambda context, cold start and structures logging output as JSON | ||
* * Log Lambda context when instructed (disabled by default) | ||
* * Log sampling prints all logs for a percentage of invocations (disabled by default) | ||
* * Append additional keys to structured log at any point in time | ||
* | ||
* ## Usage | ||
* | ||
* For more usage examples, see [our documentation](https://awslabs.github.io/aws-lambda-powertools-typescript/latest/core/logger/). | ||
* | ||
* ### Basic usage | ||
* | ||
* @example | ||
* ```typescript | ||
* import { Logger } from "@aws-lambda-powertools/logger"; | ||
* | ||
* // Logger parameters fetched from the environment variables: | ||
* const logger = new Logger(); | ||
* ``` | ||
* | ||
* ### Functions usage with manual instrumentation | ||
* | ||
* If you prefer to manually instrument your Lambda handler you can use the methods in the Logger class directly. | ||
* | ||
* @example | ||
* ```typescript | ||
* import { Logger } from "@aws-lambda-powertools/logger"; | ||
* | ||
* const logger = new Logger(); | ||
* | ||
* export const handler = async (_event, context) => { | ||
* logger.addContext(context); | ||
* logger.info("This is an INFO log with some context"); | ||
* }; | ||
* ``` | ||
* | ||
* ### Functions usage with middleware | ||
* | ||
* If you use function-based Lambda handlers you can use the [injectLambdaContext()](#injectLambdaContext) | ||
* middy middleware to automatically add context to your Lambda logs. | ||
* | ||
* @example | ||
* ```typescript | ||
* import { Logger, injectLambdaContext } from "@aws-lambda-powertools/logger"; | ||
* import middy from '@middy/core'; | ||
* | ||
* const logger = new Logger(); | ||
* | ||
* const lambdaHandler = async (_event: any, _context: any) => { | ||
* logger.info("This is an INFO log with some context"); | ||
* }; | ||
* | ||
* export const handler = middy(lambdaHandler).use(injectLambdaContext(logger)); | ||
* ``` | ||
* | ||
* ### Object oriented usage with decorators | ||
* | ||
* If instead you use TypeScript classes to wrap your Lambda handler you can use the [@logger.injectLambdaContext()](./_aws_lambda_powertools_logger.Logger.html#injectLambdaContext) decorator. | ||
* | ||
* @example | ||
* ```typescript | ||
* import { Logger } from "@aws-lambda-powertools/logger"; | ||
* import { LambdaInterface } from '@aws-lambda-powertools/commons'; | ||
* | ||
* const logger = new Logger(); | ||
* | ||
* class Lambda implements LambdaInterface { | ||
* // Decorate your handler class method | ||
* @logger.injectLambdaContext() | ||
* public async handler(_event: any, _context: any): Promise<void> { | ||
* logger.info("This is an INFO log with some context"); | ||
* } | ||
* } | ||
* | ||
* export const myFunction = new Lambda(); | ||
* export const handler = myFunction.handler; | ||
* ``` | ||
* | ||
* @class | ||
* @implements {ClassThatLogs} | ||
* @see https://awslabs.github.io/aws-lambda-powertools-typescript/latest/core/logger/ | ||
*/ | ||
declare class Logger implements ClassThatLogs { | ||
@@ -16,37 +102,250 @@ private static coldStart?; | ||
private powertoolLogData; | ||
/** | ||
* It initializes the Logger class with an optional set of options (settings). | ||
* * | ||
* @param {LoggerOptions} options | ||
*/ | ||
constructor(options?: LoggerOptions); | ||
/** | ||
* It adds the current Lambda function's invocation context data to the powertoolLogData property of the instance. | ||
* This context data will be part of all printed log items. | ||
* | ||
* @param {Context} context | ||
* @returns {void} | ||
*/ | ||
addContext(context: Context): void; | ||
/** | ||
* It adds the given attributes (key-value pairs) to all log items generated by this Logger instance. | ||
* | ||
* @param {LogAttributes} attributes | ||
* @returns {void} | ||
*/ | ||
addPersistentLogAttributes(attributes?: LogAttributes): void; | ||
/** | ||
* Alias for addPersistentLogAttributes. | ||
* | ||
* @param {LogAttributes} attributes | ||
* @returns {void} | ||
*/ | ||
appendKeys(attributes?: LogAttributes): void; | ||
/** | ||
* It creates a separate Logger instance, identical to the current one | ||
* It's possible to overwrite the new instance options by passing them. | ||
* | ||
* @param {LoggerOptions} options | ||
* @returns {Logger} | ||
*/ | ||
createChild(options?: LoggerOptions): Logger; | ||
/** | ||
* It prints a log item with level DEBUG. | ||
* | ||
* @param {LogItemMessage} input | ||
* @param {Error | LogAttributes | unknown} extraInput | ||
* @returns {void} | ||
*/ | ||
debug(input: LogItemMessage, ...extraInput: LogItemExtraInput): void; | ||
/** | ||
* It prints a log item with level ERROR. | ||
* | ||
* @param {LogItemMessage} input | ||
* @param {Error | LogAttributes | unknown} extraInput | ||
* @returns {void} | ||
*/ | ||
error(input: LogItemMessage, ...extraInput: LogItemExtraInput): void; | ||
/** | ||
* It evaluates whether the current Lambda function invocation has a cold start or not. | ||
* | ||
* @static | ||
* @returns {void} | ||
*/ | ||
static evaluateColdStartOnce(): void; | ||
/** | ||
* It returns a boolean value which is true if the current Lambda function cold start has been already evaluated, false otherwise. | ||
* | ||
* @static | ||
* @returns {boolean} | ||
*/ | ||
static getColdStartEvaluatedValue(): boolean; | ||
/** | ||
* It returns an optional boolean value, true if the current Lambda function invocation has a cold start, false otherwise. | ||
* | ||
* @static | ||
* @returns {boolean | undefined} | ||
*/ | ||
static getColdStartValue(): boolean | undefined; | ||
/** | ||
* It returns a boolean value, if true all the logs will be printed. | ||
* | ||
* @returns {boolean} | ||
*/ | ||
getLogsSampled(): boolean; | ||
/** | ||
* It prints a log item with level INFO. | ||
* | ||
* @param {LogItemMessage} input | ||
* @param {Error | LogAttributes | unknown} extraInput | ||
* @returns {void} | ||
*/ | ||
info(input: LogItemMessage, ...extraInput: LogItemExtraInput): void; | ||
/** | ||
* Method decorator that adds the current Lambda function context as extra | ||
* information in all log items. | ||
* The decorator can be used only when attached to a Lambda function handler which | ||
* is written as method of a class, and should be declared just before the handler declaration. | ||
* | ||
* @see https://www.typescriptlang.org/docs/handbook/decorators.html#method-decorators | ||
* @returns {HandlerMethodDecorator} | ||
*/ | ||
injectLambdaContext(): HandlerMethodDecorator; | ||
/** | ||
* If the sample rate feature is enabled, the calculation that determines whether the logs | ||
* will actually be printed or not for this invocation is done when the Logger class is | ||
* initialized. | ||
* This method will repeat that calculation (with possible different outcome). | ||
* | ||
* @returns {void} | ||
*/ | ||
refreshSampleRateCalculation(): void; | ||
/** | ||
* It sets the value of a flag static propriety that tracks whether | ||
* the cold start evaluation already took place. | ||
* | ||
* @param {boolean} value | ||
* @static | ||
* @returns {void} | ||
*/ | ||
static setColdStartEvaluatedValue(value: boolean): void; | ||
/** | ||
* It sets the value of a flag static propriety that tracks whether | ||
* the current Lambda invocation experienced a cold start. | ||
* | ||
* @static | ||
* @param {boolean | undefined} value | ||
* @returns {void} | ||
*/ | ||
static setColdStartValue(value: boolean | undefined): void; | ||
/** | ||
* It sets the user-provided sample rate value. | ||
* | ||
* @param {number} [sampleRateValue] | ||
* @returns {void} | ||
*/ | ||
setSampleRateValue(sampleRateValue?: number): void; | ||
/** | ||
* It prints a log item with level WARN. | ||
* | ||
* @param {LogItemMessage} input | ||
* @param {Error | LogAttributes | unknown} extraInput | ||
* @returns {void} | ||
*/ | ||
warn(input: LogItemMessage, ...extraInput: LogItemExtraInput): void; | ||
/** | ||
* It stores information that is printed in all log items. | ||
* | ||
* @param {Partial<PowertoolLogData>} attributesArray | ||
* @private | ||
* @returns {void} | ||
*/ | ||
private addToPowertoolLogData; | ||
/** | ||
* It processes a particular log item so that it can be printed to stdout: | ||
* - Merges ephemeral log attributes with persistent log attributes (printed for all logs) and additional info; | ||
* - Formats all the log attributes; | ||
* | ||
* @private | ||
* @param {LogLevel} logLevel | ||
* @param {LogItemMessage} input | ||
* @param {LogItemExtraInput} extraInput | ||
* @returns {LogItem} | ||
*/ | ||
private createAndPopulateLogItem; | ||
/** | ||
* It evaluates whether the current Lambda invocation experienced a | ||
* cold start. | ||
* | ||
* @private | ||
* @static | ||
* @returns {void} | ||
*/ | ||
private static evaluateColdStart; | ||
/** | ||
* It returns the custom config service, an abstraction used to fetch environment variables. | ||
* | ||
* @private | ||
* @returns {ConfigServiceInterface | undefined} | ||
*/ | ||
private getCustomConfigService; | ||
/** | ||
* It returns the instance of a service that fetches environment variables. | ||
* | ||
* @private | ||
* @returns {EnvironmentVariablesService} | ||
*/ | ||
private getEnvVarsService; | ||
/** | ||
* It returns the instance of a service that formats the structure of a | ||
* log item's keys and values in the desired way. | ||
* | ||
* @private | ||
* @returns {LogFormatterInterface} | ||
*/ | ||
private getLogFormatter; | ||
/** | ||
* It returns the log level set for the Logger instance. | ||
* | ||
* @private | ||
* @returns {LogLevel} | ||
*/ | ||
private getLogLevel; | ||
/** | ||
* It returns the persistent log attributes, which are the attributes | ||
* that will be logged in all log items. | ||
* | ||
* @private | ||
* @returns {LogAttributes} | ||
*/ | ||
private getPersistentLogAttributes; | ||
/** | ||
* It returns information that will be added in all log item by | ||
* this Logger instance (different from user-provided persistent attributes). | ||
* | ||
* @private | ||
* @returns {LogAttributes} | ||
*/ | ||
private getPowertoolLogData; | ||
/** | ||
* It returns the numeric sample rate value. | ||
* | ||
* @private | ||
* @returns {number} | ||
*/ | ||
private getSampleRateValue; | ||
/** | ||
* It returns true if the provided log level is valid. | ||
* | ||
* @param {LogLevel} logLevel | ||
* @private | ||
* @returns {boolean} | ||
*/ | ||
private isValidLogLevel; | ||
/** | ||
* It prints a given log with given log level. | ||
* | ||
* @param {LogLevel} logLevel | ||
* @param {LogItem} log | ||
* @private | ||
*/ | ||
private printLog; | ||
/** | ||
* It prints a given log with given log level. | ||
* | ||
* @param {LogLevel} logLevel | ||
* @param {LogItem} log | ||
* @private | ||
*/ | ||
private processLogItem; | ||
/** | ||
* When the data added in the log item when contains object references, | ||
* JSON.stringify() doesn't try to solve them and throws an error: TypeError: cyclic object value. | ||
* To mitigate this issue, this function will find and remove the cyclic references. | ||
* When the data added in the log item contains object references, | ||
* JSON.stringify() doesn't try to solve them and instead throws an error: TypeError: cyclic object value. | ||
* To mitigate this issue, this method will find and remove all cyclic references. | ||
* | ||
@@ -57,11 +356,75 @@ * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Cyclic_object_value | ||
private removeCircularDependencies; | ||
/** | ||
* Sets the Logger's customer config service instance, which will be used | ||
* to fetch environment variables. | ||
* | ||
* @private | ||
* @param {ConfigServiceInterface} customConfigService | ||
* @returns {void} | ||
*/ | ||
private setCustomConfigService; | ||
/** | ||
* Sets the Logger's custom config service instance, which will be used | ||
* to fetch environment variables. | ||
* | ||
* @private | ||
* @param {ConfigServiceInterface} customConfigService | ||
* @returns {void} | ||
*/ | ||
private setEnvVarsService; | ||
/** | ||
* It sets the log formatter instance, in charge of giving a custom format | ||
* to the structured logs | ||
* | ||
* @private | ||
* @param {LogFormatterInterface} logFormatter | ||
* @returns {void} | ||
*/ | ||
private setLogFormatter; | ||
/** | ||
* It sets the Logger's instance log level. | ||
* | ||
* @private | ||
* @param {LogLevel} logLevel | ||
* @returns {void} | ||
*/ | ||
private setLogLevel; | ||
/** | ||
* If the sample rate feature is enabled, it sets a property that tracks whether this Lambda function invocation | ||
* will print logs or not. | ||
* | ||
* @private | ||
* @returns {void} | ||
*/ | ||
private setLogsSampled; | ||
/** | ||
* It configures the Logger instance settings that will affect the Logger's behaviour | ||
* and the content of all logs. | ||
* | ||
* @private | ||
* @param {LoggerOptions} options | ||
* @returns {Logger} | ||
*/ | ||
private setOptions; | ||
/** | ||
* It adds important data to the Logger instance that will affect the content of all logs. | ||
* | ||
* @param {string} serviceName | ||
* @param {Environment} environment | ||
* @param {LogAttributes} persistentLogAttributes | ||
* @private | ||
* @returns {void} | ||
*/ | ||
private setPowertoolLogData; | ||
/** | ||
* It checks whether the current log item should/can be printed. | ||
* | ||
* @param {string} serviceName | ||
* @param {Environment} environment | ||
* @param {LogAttributes} persistentLogAttributes | ||
* @private | ||
* @returns {boolean} | ||
*/ | ||
private shouldPrint; | ||
} | ||
export { Logger }; |
@@ -12,3 +12,94 @@ "use strict"; | ||
const config_1 = require("./config"); | ||
/** | ||
* ## Intro | ||
* The Logger utility provides an opinionated logger with output structured as JSON. | ||
* | ||
* ## Key features | ||
* * Capture key fields from Lambda context, cold start and structures logging output as JSON | ||
* * Log Lambda context when instructed (disabled by default) | ||
* * Log sampling prints all logs for a percentage of invocations (disabled by default) | ||
* * Append additional keys to structured log at any point in time | ||
* | ||
* ## Usage | ||
* | ||
* For more usage examples, see [our documentation](https://awslabs.github.io/aws-lambda-powertools-typescript/latest/core/logger/). | ||
* | ||
* ### Basic usage | ||
* | ||
* @example | ||
* ```typescript | ||
* import { Logger } from "@aws-lambda-powertools/logger"; | ||
* | ||
* // Logger parameters fetched from the environment variables: | ||
* const logger = new Logger(); | ||
* ``` | ||
* | ||
* ### Functions usage with manual instrumentation | ||
* | ||
* If you prefer to manually instrument your Lambda handler you can use the methods in the Logger class directly. | ||
* | ||
* @example | ||
* ```typescript | ||
* import { Logger } from "@aws-lambda-powertools/logger"; | ||
* | ||
* const logger = new Logger(); | ||
* | ||
* export const handler = async (_event, context) => { | ||
* logger.addContext(context); | ||
* logger.info("This is an INFO log with some context"); | ||
* }; | ||
* ``` | ||
* | ||
* ### Functions usage with middleware | ||
* | ||
* If you use function-based Lambda handlers you can use the [injectLambdaContext()](#injectLambdaContext) | ||
* middy middleware to automatically add context to your Lambda logs. | ||
* | ||
* @example | ||
* ```typescript | ||
* import { Logger, injectLambdaContext } from "@aws-lambda-powertools/logger"; | ||
* import middy from '@middy/core'; | ||
* | ||
* const logger = new Logger(); | ||
* | ||
* const lambdaHandler = async (_event: any, _context: any) => { | ||
* logger.info("This is an INFO log with some context"); | ||
* }; | ||
* | ||
* export const handler = middy(lambdaHandler).use(injectLambdaContext(logger)); | ||
* ``` | ||
* | ||
* ### Object oriented usage with decorators | ||
* | ||
* If instead you use TypeScript classes to wrap your Lambda handler you can use the [@logger.injectLambdaContext()](./_aws_lambda_powertools_logger.Logger.html#injectLambdaContext) decorator. | ||
* | ||
* @example | ||
* ```typescript | ||
* import { Logger } from "@aws-lambda-powertools/logger"; | ||
* import { LambdaInterface } from '@aws-lambda-powertools/commons'; | ||
* | ||
* const logger = new Logger(); | ||
* | ||
* class Lambda implements LambdaInterface { | ||
* // Decorate your handler class method | ||
* @logger.injectLambdaContext() | ||
* public async handler(_event: any, _context: any): Promise<void> { | ||
* logger.info("This is an INFO log with some context"); | ||
* } | ||
* } | ||
* | ||
* export const myFunction = new Lambda(); | ||
* export const handler = myFunction.handler; | ||
* ``` | ||
* | ||
* @class | ||
* @implements {ClassThatLogs} | ||
* @see https://awslabs.github.io/aws-lambda-powertools-typescript/latest/core/logger/ | ||
*/ | ||
class Logger { | ||
/** | ||
* It initializes the Logger class with an optional set of options (settings). | ||
* * | ||
* @param {LoggerOptions} options | ||
*/ | ||
constructor(options = {}) { | ||
@@ -26,2 +117,9 @@ this.logLevelThresholds = { | ||
} | ||
/** | ||
* It adds the current Lambda function's invocation context data to the powertoolLogData property of the instance. | ||
* This context data will be part of all printed log items. | ||
* | ||
* @param {Context} context | ||
* @returns {void} | ||
*/ | ||
addContext(context) { | ||
@@ -41,17 +139,56 @@ Logger.evaluateColdStartOnce(); | ||
} | ||
/** | ||
* It adds the given attributes (key-value pairs) to all log items generated by this Logger instance. | ||
* | ||
* @param {LogAttributes} attributes | ||
* @returns {void} | ||
*/ | ||
addPersistentLogAttributes(attributes) { | ||
this.persistentLogAttributes = (0, lodash_merge_1.default)(attributes, this.getPersistentLogAttributes()); | ||
} | ||
/** | ||
* Alias for addPersistentLogAttributes. | ||
* | ||
* @param {LogAttributes} attributes | ||
* @returns {void} | ||
*/ | ||
appendKeys(attributes) { | ||
this.addPersistentLogAttributes(attributes); | ||
} | ||
/** | ||
* It creates a separate Logger instance, identical to the current one | ||
* It's possible to overwrite the new instance options by passing them. | ||
* | ||
* @param {LoggerOptions} options | ||
* @returns {Logger} | ||
*/ | ||
createChild(options = {}) { | ||
return (0, lodash_clonedeep_1.default)(this).setOptions(options); | ||
} | ||
/** | ||
* It prints a log item with level DEBUG. | ||
* | ||
* @param {LogItemMessage} input | ||
* @param {Error | LogAttributes | unknown} extraInput | ||
* @returns {void} | ||
*/ | ||
debug(input, ...extraInput) { | ||
this.processLogItem('DEBUG', input, extraInput); | ||
} | ||
/** | ||
* It prints a log item with level ERROR. | ||
* | ||
* @param {LogItemMessage} input | ||
* @param {Error | LogAttributes | unknown} extraInput | ||
* @returns {void} | ||
*/ | ||
error(input, ...extraInput) { | ||
this.processLogItem('ERROR', input, extraInput); | ||
} | ||
/** | ||
* It evaluates whether the current Lambda function invocation has a cold start or not. | ||
* | ||
* @static | ||
* @returns {void} | ||
*/ | ||
static evaluateColdStartOnce() { | ||
@@ -62,14 +199,47 @@ if (!Logger.getColdStartEvaluatedValue()) { | ||
} | ||
/** | ||
* It returns a boolean value which is true if the current Lambda function cold start has been already evaluated, false otherwise. | ||
* | ||
* @static | ||
* @returns {boolean} | ||
*/ | ||
static getColdStartEvaluatedValue() { | ||
return Logger.coldStartEvaluated; | ||
} | ||
/** | ||
* It returns an optional boolean value, true if the current Lambda function invocation has a cold start, false otherwise. | ||
* | ||
* @static | ||
* @returns {boolean | undefined} | ||
*/ | ||
static getColdStartValue() { | ||
return Logger.coldStart; | ||
} | ||
/** | ||
* It returns a boolean value, if true all the logs will be printed. | ||
* | ||
* @returns {boolean} | ||
*/ | ||
getLogsSampled() { | ||
return this.logsSampled; | ||
} | ||
/** | ||
* It prints a log item with level INFO. | ||
* | ||
* @param {LogItemMessage} input | ||
* @param {Error | LogAttributes | unknown} extraInput | ||
* @returns {void} | ||
*/ | ||
info(input, ...extraInput) { | ||
this.processLogItem('INFO', input, extraInput); | ||
} | ||
/** | ||
* Method decorator that adds the current Lambda function context as extra | ||
* information in all log items. | ||
* The decorator can be used only when attached to a Lambda function handler which | ||
* is written as method of a class, and should be declared just before the handler declaration. | ||
* | ||
* @see https://www.typescriptlang.org/docs/handbook/decorators.html#method-decorators | ||
* @returns {HandlerMethodDecorator} | ||
*/ | ||
injectLambdaContext() { | ||
@@ -84,11 +254,41 @@ return (target, propertyKey, descriptor) => { | ||
} | ||
/** | ||
* If the sample rate feature is enabled, the calculation that determines whether the logs | ||
* will actually be printed or not for this invocation is done when the Logger class is | ||
* initialized. | ||
* This method will repeat that calculation (with possible different outcome). | ||
* | ||
* @returns {void} | ||
*/ | ||
refreshSampleRateCalculation() { | ||
this.setLogsSampled(); | ||
} | ||
/** | ||
* It sets the value of a flag static propriety that tracks whether | ||
* the cold start evaluation already took place. | ||
* | ||
* @param {boolean} value | ||
* @static | ||
* @returns {void} | ||
*/ | ||
static setColdStartEvaluatedValue(value) { | ||
Logger.coldStartEvaluated = value; | ||
} | ||
/** | ||
* It sets the value of a flag static propriety that tracks whether | ||
* the current Lambda invocation experienced a cold start. | ||
* | ||
* @static | ||
* @param {boolean | undefined} value | ||
* @returns {void} | ||
*/ | ||
static setColdStartValue(value) { | ||
Logger.coldStart = value; | ||
} | ||
/** | ||
* It sets the user-provided sample rate value. | ||
* | ||
* @param {number} [sampleRateValue] | ||
* @returns {void} | ||
*/ | ||
setSampleRateValue(sampleRateValue) { | ||
@@ -100,5 +300,19 @@ this.powertoolLogData.sampleRateValue = | ||
} | ||
/** | ||
* It prints a log item with level WARN. | ||
* | ||
* @param {LogItemMessage} input | ||
* @param {Error | LogAttributes | unknown} extraInput | ||
* @returns {void} | ||
*/ | ||
warn(input, ...extraInput) { | ||
this.processLogItem('WARN', input, extraInput); | ||
} | ||
/** | ||
* It stores information that is printed in all log items. | ||
* | ||
* @param {Partial<PowertoolLogData>} attributesArray | ||
* @private | ||
* @returns {void} | ||
*/ | ||
addToPowertoolLogData(...attributesArray) { | ||
@@ -109,3 +323,15 @@ attributesArray.forEach((attributes) => { | ||
} | ||
/** | ||
* It processes a particular log item so that it can be printed to stdout: | ||
* - Merges ephemeral log attributes with persistent log attributes (printed for all logs) and additional info; | ||
* - Formats all the log attributes; | ||
* | ||
* @private | ||
* @param {LogLevel} logLevel | ||
* @param {LogItemMessage} input | ||
* @param {LogItemExtraInput} extraInput | ||
* @returns {LogItem} | ||
*/ | ||
createAndPopulateLogItem(logLevel, input, extraInput) { | ||
// TODO: this method's logic is hard to understand, there is an opportunity here to simplify this logic. | ||
const unformattedBaseAttributes = (0, lodash_merge_1.default)({ | ||
@@ -130,2 +356,10 @@ logLevel, | ||
} | ||
/** | ||
* It evaluates whether the current Lambda invocation experienced a | ||
* cold start. | ||
* | ||
* @private | ||
* @static | ||
* @returns {void} | ||
*/ | ||
static evaluateColdStart() { | ||
@@ -144,20 +378,65 @@ const coldStartValue = Logger.getColdStartValue(); | ||
} | ||
/** | ||
* It returns the custom config service, an abstraction used to fetch environment variables. | ||
* | ||
* @private | ||
* @returns {ConfigServiceInterface | undefined} | ||
*/ | ||
getCustomConfigService() { | ||
return this.customConfigService; | ||
} | ||
/** | ||
* It returns the instance of a service that fetches environment variables. | ||
* | ||
* @private | ||
* @returns {EnvironmentVariablesService} | ||
*/ | ||
getEnvVarsService() { | ||
return this.envVarsService; | ||
} | ||
/** | ||
* It returns the instance of a service that formats the structure of a | ||
* log item's keys and values in the desired way. | ||
* | ||
* @private | ||
* @returns {LogFormatterInterface} | ||
*/ | ||
getLogFormatter() { | ||
return this.logFormatter; | ||
} | ||
/** | ||
* It returns the log level set for the Logger instance. | ||
* | ||
* @private | ||
* @returns {LogLevel} | ||
*/ | ||
getLogLevel() { | ||
return this.logLevel; | ||
} | ||
/** | ||
* It returns the persistent log attributes, which are the attributes | ||
* that will be logged in all log items. | ||
* | ||
* @private | ||
* @returns {LogAttributes} | ||
*/ | ||
getPersistentLogAttributes() { | ||
return this.persistentLogAttributes; | ||
} | ||
/** | ||
* It returns information that will be added in all log item by | ||
* this Logger instance (different from user-provided persistent attributes). | ||
* | ||
* @private | ||
* @returns {LogAttributes} | ||
*/ | ||
getPowertoolLogData() { | ||
return this.powertoolLogData; | ||
} | ||
/** | ||
* It returns the numeric sample rate value. | ||
* | ||
* @private | ||
* @returns {number} | ||
*/ | ||
getSampleRateValue() { | ||
@@ -169,5 +448,19 @@ if (!this.powertoolLogData?.sampleRateValue) { | ||
} | ||
/** | ||
* It returns true if the provided log level is valid. | ||
* | ||
* @param {LogLevel} logLevel | ||
* @private | ||
* @returns {boolean} | ||
*/ | ||
isValidLogLevel(logLevel) { | ||
return typeof logLevel === 'string' && logLevel.toUpperCase() in this.logLevelThresholds; | ||
} | ||
/** | ||
* It prints a given log with given log level. | ||
* | ||
* @param {LogLevel} logLevel | ||
* @param {LogItem} log | ||
* @private | ||
*/ | ||
printLog(logLevel, log) { | ||
@@ -178,2 +471,9 @@ log.prepareForPrint(); | ||
} | ||
/** | ||
* It prints a given log with given log level. | ||
* | ||
* @param {LogLevel} logLevel | ||
* @param {LogItem} log | ||
* @private | ||
*/ | ||
processLogItem(logLevel, input, extraInput) { | ||
@@ -186,5 +486,5 @@ if (!this.shouldPrint(logLevel)) { | ||
/** | ||
* When the data added in the log item when contains object references, | ||
* JSON.stringify() doesn't try to solve them and throws an error: TypeError: cyclic object value. | ||
* To mitigate this issue, this function will find and remove the cyclic references. | ||
* When the data added in the log item contains object references, | ||
* JSON.stringify() doesn't try to solve them and instead throws an error: TypeError: cyclic object value. | ||
* To mitigate this issue, this method will find and remove all cyclic references. | ||
* | ||
@@ -210,11 +510,42 @@ * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Cyclic_object_value | ||
} | ||
/** | ||
* Sets the Logger's customer config service instance, which will be used | ||
* to fetch environment variables. | ||
* | ||
* @private | ||
* @param {ConfigServiceInterface} customConfigService | ||
* @returns {void} | ||
*/ | ||
setCustomConfigService(customConfigService) { | ||
this.customConfigService = customConfigService ? customConfigService : undefined; | ||
} | ||
/** | ||
* Sets the Logger's custom config service instance, which will be used | ||
* to fetch environment variables. | ||
* | ||
* @private | ||
* @param {ConfigServiceInterface} customConfigService | ||
* @returns {void} | ||
*/ | ||
setEnvVarsService() { | ||
this.envVarsService = new config_1.EnvironmentVariablesService(); | ||
} | ||
/** | ||
* It sets the log formatter instance, in charge of giving a custom format | ||
* to the structured logs | ||
* | ||
* @private | ||
* @param {LogFormatterInterface} logFormatter | ||
* @returns {void} | ||
*/ | ||
setLogFormatter(logFormatter) { | ||
this.logFormatter = logFormatter || new formatter_1.PowertoolLogFormatter(); | ||
} | ||
/** | ||
* It sets the Logger's instance log level. | ||
* | ||
* @private | ||
* @param {LogLevel} logLevel | ||
* @returns {void} | ||
*/ | ||
setLogLevel(logLevel) { | ||
@@ -237,2 +568,9 @@ if (this.isValidLogLevel(logLevel)) { | ||
} | ||
/** | ||
* If the sample rate feature is enabled, it sets a property that tracks whether this Lambda function invocation | ||
* will print logs or not. | ||
* | ||
* @private | ||
* @returns {void} | ||
*/ | ||
setLogsSampled() { | ||
@@ -243,2 +581,10 @@ const sampleRateValue = this.getSampleRateValue(); | ||
} | ||
/** | ||
* It configures the Logger instance settings that will affect the Logger's behaviour | ||
* and the content of all logs. | ||
* | ||
* @private | ||
* @param {LoggerOptions} options | ||
* @returns {Logger} | ||
*/ | ||
setOptions(options) { | ||
@@ -256,2 +602,11 @@ const { logLevel, serviceName, sampleRateValue, logFormatter, customConfigService, persistentLogAttributes, environment, } = options; | ||
} | ||
/** | ||
* It adds important data to the Logger instance that will affect the content of all logs. | ||
* | ||
* @param {string} serviceName | ||
* @param {Environment} environment | ||
* @param {LogAttributes} persistentLogAttributes | ||
* @private | ||
* @returns {void} | ||
*/ | ||
setPowertoolLogData(serviceName, environment, persistentLogAttributes = {}) { | ||
@@ -268,2 +623,11 @@ this.addToPowertoolLogData({ | ||
} | ||
/** | ||
* It checks whether the current log item should/can be printed. | ||
* | ||
* @param {string} serviceName | ||
* @param {Environment} environment | ||
* @param {LogAttributes} persistentLogAttributes | ||
* @private | ||
* @returns {boolean} | ||
*/ | ||
shouldPrint(logLevel) { | ||
@@ -281,2 +645,2 @@ if (this.logLevelThresholds[logLevel] >= this.logLevelThresholds[this.getLogLevel()]) { | ||
Logger.defaultServiceName = 'service_undefined'; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSwyQ0FBMkU7QUFDM0UsK0JBQWdDO0FBQ2hDLHdFQUF5QztBQUN6QyxnRUFBaUM7QUFDakMscUNBQStFO0FBZS9FLE1BQU0sTUFBTTtJQStCVixZQUFtQixVQUF5QixFQUFFO1FBYjdCLHVCQUFrQixHQUF1QjtZQUN4RCxLQUFLLEVBQUUsQ0FBQztZQUNSLElBQUksRUFBRSxFQUFFO1lBQ1IsSUFBSSxFQUFFLEVBQUU7WUFDUixLQUFLLEVBQUUsRUFBRTtTQUNWLENBQUM7UUFFTSxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUU3Qiw0QkFBdUIsR0FBbUIsRUFBRSxDQUFDO1FBRTdDLHFCQUFnQixHQUF1QyxFQUFFLENBQUM7UUFHaEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU0sVUFBVSxDQUFDLE9BQWdCO1FBQ2hDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQy9CLE1BQU0sYUFBYSxHQUFtQztZQUNwRCxrQkFBa0IsRUFBRSxPQUFPLENBQUMsa0JBQWtCO1lBQzlDLFNBQVMsRUFBRSxNQUFNLENBQUMsaUJBQWlCLEVBQUU7WUFDckMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZO1lBQ2xDLGVBQWUsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztZQUNoRCxZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVk7WUFDbEMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxlQUFlO1NBQ3pDLENBQUM7UUFFRixJQUFJLENBQUMscUJBQXFCLENBQUM7WUFDekIsYUFBYTtTQUNkLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSwwQkFBMEIsQ0FBQyxVQUEwQjtRQUMxRCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBQSxzQkFBSyxFQUFDLFVBQVUsRUFBRSxJQUFJ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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSwyQ0FBMkU7QUFDM0UsK0JBQWdDO0FBQ2hDLHdFQUF5QztBQUN6QyxnRUFBaUM7QUFDakMscUNBQStFO0FBZS9FOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUZHO0FBQ0gsTUFBTSxNQUFNO0lBK0JWOzs7O09BSUc7SUFDSCxZQUFtQixVQUF5QixFQUFFO1FBbEI3Qix1QkFBa0IsR0FBdUI7WUFDeEQsS0FBSyxFQUFFLENBQUM7WUFDUixJQUFJLEVBQUUsRUFBRTtZQUNSLElBQUksRUFBRSxFQUFFO1lBQ1IsS0FBSyxFQUFFLEVBQUU7U0FDVixDQUFDO1FBRU0sZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFFN0IsNEJBQXVCLEdBQW1CLEVBQUUsQ0FBQztRQUU3QyxxQkFBZ0IsR0FBdUMsRUFBRSxDQUFDO1FBUWhFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLFVBQVUsQ0FBQyxPQUFnQjtRQUNoQyxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUMvQixNQUFNLGFBQWEsR0FBbUM7WUFDcEQsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLGtCQUFrQjtZQUM5QyxTQUFTLEVBQUUsTUFBTSxDQUFDLGlCQUFpQixFQUFFO1lBQ3JDLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtZQUNsQyxlQUFlLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7WUFDaEQsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZO1lBQ2xDLGVBQWUsRUFBRSxPQUFPLENBQUMsZUFBZTtTQUN6QyxDQUFDO1FBRUYsSUFBSSxDQUFDLHFCQUFx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 |
import type { Logger } from '../Logger'; | ||
import middy from '@middy/core'; | ||
/** | ||
* A middy middleware that adds the current Lambda invocation's context inside all log items. | ||
* | ||
* ## Usage | ||
* | ||
* @example | ||
* ```typescript | ||
* import { Logger, injectLambdaContext } from "@aws-lambda-powertools/logger"; | ||
* | ||
* import middy from '@middy/core'; | ||
* | ||
* | ||
* const logger = new Logger(); | ||
* | ||
* const lambdaHandler = async (_event: any, _context: any) => { | ||
* logger.info("This is an INFO log with some context"); | ||
* }; | ||
* | ||
* | ||
* export const handler = middy(lambdaHandler).use(injectLambdaContext(logger)); | ||
* ``` | ||
* | ||
* @param {Logger|Logger[]} target - The Tracer instance to use for tracing | ||
* @returns {middy.MiddlewareObj} - The middy middleware object | ||
*/ | ||
declare const injectLambdaContext: (target: Logger | Logger[]) => middy.MiddlewareObj; | ||
export { injectLambdaContext, }; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.injectLambdaContext = void 0; | ||
/** | ||
* A middy middleware that adds the current Lambda invocation's context inside all log items. | ||
* | ||
* ## Usage | ||
* | ||
* @example | ||
* ```typescript | ||
* import { Logger, injectLambdaContext } from "@aws-lambda-powertools/logger"; | ||
* | ||
* import middy from '@middy/core'; | ||
* | ||
* | ||
* const logger = new Logger(); | ||
* | ||
* const lambdaHandler = async (_event: any, _context: any) => { | ||
* logger.info("This is an INFO log with some context"); | ||
* }; | ||
* | ||
* | ||
* export const handler = middy(lambdaHandler).use(injectLambdaContext(logger)); | ||
* ``` | ||
* | ||
* @param {Logger|Logger[]} target - The Tracer instance to use for tracing | ||
* @returns {middy.MiddlewareObj} - The middy middleware object | ||
*/ | ||
const injectLambdaContext = (target) => { | ||
@@ -16,2 +41,2 @@ const injectLambdaContextBefore = async (request) => { | ||
exports.injectLambdaContext = injectLambdaContext; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWlkZGxld2FyZS9taWRkeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxNQUFNLG1CQUFtQixHQUFHLENBQUMsTUFBeUIsRUFBdUIsRUFBRTtJQUM3RSxNQUFNLHlCQUF5QixHQUFHLEtBQUssRUFBRSxPQUFzQixFQUFpQixFQUFFO1FBQ2hGLE1BQU0sT0FBTyxHQUFHLE1BQU0sWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1RCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBYyxFQUFFLEVBQUU7WUFDakMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsTUFBTSxFQUFFLHlCQUF5QjtLQUNsQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBR0Esa0RBQW1CIn0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWlkZGxld2FyZS9taWRkeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHO0FBQ0gsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLE1BQXlCLEVBQXVCLEVBQUU7SUFDN0UsTUFBTSx5QkFBeUIsR0FBRyxLQUFLLEVBQUUsT0FBc0IsRUFBaUIsRUFBRTtRQUNoRixNQUFNLE9BQU8sR0FBRyxNQUFNLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQWMsRUFBRSxFQUFFO1lBQ2pDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsT0FBTztRQUNMLE1BQU0sRUFBRSx5QkFBeUI7S0FDbEMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUdBLGtEQUFtQiJ9 |
{ | ||
"name": "@aws-lambda-powertools/logger", | ||
"version": "0.3.3", | ||
"version": "0.4.0", | ||
"description": "The logging package for the AWS Lambda powertools (TypeScript) library", | ||
@@ -81,3 +81,3 @@ "author": { | ||
}, | ||
"gitHead": "74310456754ce9ce92afba9b80082ffed606f14e" | ||
"gitHead": "1b8d963974e9ccc5994148a44410a6e0cfe3f4ba" | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
95301
1960