Skip to content

Bug: Temp keys no longer being merged when appended to logger #4838

@StuAA78

Description

@StuAA78

Expected Behavior

Say we have an instance of logger and we've used appendKeys() to add an object obj to it.

In 2.28.1, if we then append obj to logger again, the existing obj is merged with the one being added. For example:

logger.appendKeys({ obj: { key1: 'value' } })
logger.appendKeys({ obj: { key2: 'value' } })
logger.critical('')

// -> { ... "obj":{"key1":"value","key2":"value"}}

Current Behavior

In 2.29.0, the existing obj is replaced by the one being added. For example:

logger.appendKeys({ obj: { key1: 'value' } })
logger.appendKeys({ obj: { key2: 'value' } })
logger.critical('')

// -> { ... "obj":{"key2":"value"}}

Note that this does not happen with persistent keys in either 2.28.1 or 2.29.0:

logger.appendPersistentKeys({ obj: { key1: 'value' } })
logger.appendPersistentKeys({ obj: { key2: 'value' } })
logger.critical('')

// -> { ... "obj":{"key1":"value","key2":"value"}}

Code snippet

import { Logger } from '@aws-lambda-powertools/logger'
const logger = new Logger()

logger.appendKeys({ obj: { key1: 'value' } })
logger.appendKeys({ obj: { key2: 'value' } })
logger.critical('')

Steps to Reproduce

See above.

Possible Solution

No response

Powertools for AWS Lambda (TypeScript) version

latest

AWS Lambda function runtime

22.x

Packaging format used

Lambda Layers

Execution logs

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingpending-releaseThis item has been merged and will be released soon

Type

No type

Projects

Status

Coming soon

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions