You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+58-3Lines changed: 58 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -40,7 +40,8 @@ They implement the following public methods:
40
40
*`policyConfig` - SQS only - configuration for queue access policies (see [SQS Policy Configuration](#sqs-policy-configuration) for more information);
41
41
*`deletionConfig` - automatic cleanup of resources;
42
42
*`handlerSpy` - allow awaiting certain messages to be published (see [Handler Spies](#handler-spies) for more information);
43
-
*`logMessages` - add logs for processed messages.
43
+
*`logMessages` - add debug logs for processed messages. When enabled, logs structured metadata including message id, type, timestamps, and queue name. For privacy reasons, the full message payload is not logged by default. See [Message Logging](#message-logging) for more details.
44
+
*`messageMetadataField` - which field in the message contains metadata for logging purposes (by default it is `metadata`).
44
45
*`payloadStoreConfig` - configuration for payload offloading. This option enables the external storage of large message payloads to comply with message size limitations of the queue system. For more details on setting this up, see [Payload Offloading](#payload-offloading).
45
46
*`messageDeduplicationConfig` - configuration for store-based message deduplication on publisher level. For more details on setting this up, see [Publisher-level store-based-message deduplication](#publisher-level-store-based-message-deduplication).
46
47
*`enablePublisherDeduplication` - enable store-based publisher-level deduplication. For more details on setting this up, see [Publisher-level store-based-message deduplication](#publisher-level-store-based-message-deduplication).
@@ -110,7 +111,8 @@ Multi-schema consumers support multiple message types via handler configs. They
110
111
*`consumerOverrides` – available only for SQS consumers;
111
112
*`deadLetterQueue` - available only for SQS and SNS consumers (see [Dead Letter Queue](#dead-letter-queue) for more information);
112
113
*`handlerSpy` - allow awaiting certain messages to be published (see [Handler Spies](#handler-spies) for more information);
113
-
*`logMessages` - add logs for processed messages.
114
+
*`logMessages` - add debug logs for processed messages. When enabled, logs structured metadata including message id, type, timestamps, and queue name. For privacy reasons, the full message payload is not logged by default. To include custom message data in logs, configure `messageLogFormatter` on your handlers. See [Message Logging](#message-logging) for more details.
115
+
*`messageMetadataField` - which field in the message contains metadata for logging purposes (by default it is `metadata`).
114
116
*`payloadStoreConfig` - configuration for payload offloading. This option enables the external storage of large message payloads to comply with message size limitations of the queue system. For more details on setting this up, see [Payload Offloading](#payload-offloading).
115
117
*`concurrentConsumersAmount` - configuration for specifying the number of concurrent consumers to create. Available only for SQS and SNS consumers
116
118
*`messageDeduplicationConfig` - configuration for store-based message deduplication on consumer level. For more details on setting this up, see [Consumer-level store-based-message deduplication](#consumer-level-store-based-message-deduplication).
@@ -173,7 +175,9 @@ export class SqsPermissionConsumer extends AbstractSqsConsumer<
173
175
preHandlerBarrier: async (message) => {
174
176
// do barrier check here
175
177
returntrue
176
-
}
178
+
},
179
+
// Optional: customize what message data is logged (see Message Logging section)
When `logMessages` is enabled, processed messages are logged at the `debug` level with structured metadata. For privacy reasons, the full message payload is **not logged by default** to avoid exposing sensitive data.
652
+
653
+
### What is logged by default
654
+
655
+
Each log entry includes processed message metadata:
656
+
-`messageId` - unique identifier of the message
657
+
-`messageType` - type of the message
658
+
-`queueName` - name of the queue or topic
659
+
-`messageTimestamp` - when the message was originally sent
660
+
-`messageProcessingStartTimestamp` - when processing started
661
+
-`messageProcessingEndTimestamp` - when processing completed
662
+
-`messageDeduplicationId` - deduplication id (if deduplication is enabled)
663
+
-`messageMetadata` - contents of the metadata field (configurable via `messageMetadataField`)
664
+
-`processingResult` - outcome of processing (e.g., `{ status: 'consumed' }` or `{ status: 'published' }`)
665
+
666
+
### Custom message logging with messageLogFormatter
667
+
668
+
If you need to include additional message data in logs, you can configure a `messageLogFormatter` on your handler. This formatter receives the message and returns the data to be logged:
// Only log specific fields, excluding sensitive data
680
+
messageLogFormatter: (message) => ({
681
+
id: message.id,
682
+
type: message.type,
683
+
// Exclude sensitive fields like email, password, etc.
684
+
}),
685
+
},
686
+
)
687
+
.build()
688
+
```
689
+
690
+
When a `messageLogFormatter` is provided, its output is included in the log under the `message` key alongside the processed message metadata.
691
+
692
+
### Configuration options
693
+
694
+
| Option | Default | Description |
695
+
|--------|---------|-------------|
696
+
|`logMessages`|`false`| Enable debug logging for processed messages |
697
+
|`messageMetadataField`|`'metadata'`| Field in the message containing metadata to include in logs |
698
+
645
699
## Payload Offloading
646
700
Payload offloading allows you to manage large message payloads by storing them in external storage, bypassing any message size restrictions imposed by queue systems.
647
701
@@ -773,6 +827,7 @@ It needs to implement the following methods:
0 commit comments