1- import {
1+ import type {
22 AbsoluteLocation ,
33 HandlerExecutionContext ,
44 InitializeHandler ,
55 InitializeHandlerArguments ,
66 InitializeHandlerOptions ,
77 InitializeHandlerOutput ,
88 MetadataBearer ,
9+ OperationSchema ,
910 Pluggable ,
1011} from "@smithy/types" ;
12+ import { getSmithyContext } from "@smithy/util-middleware" ;
13+
14+ import { schemaLogFilter } from "./schemaLogFilter" ;
1115
1216export const loggerMiddleware =
1317 ( ) =>
@@ -16,33 +20,42 @@ export const loggerMiddleware =
1620 context : HandlerExecutionContext
1721 ) : InitializeHandler < any , Output > =>
1822 async ( args : InitializeHandlerArguments < any > ) : Promise < InitializeHandlerOutput < Output > > => {
23+ const { operationSchema } = getSmithyContext ( context ) as {
24+ operationSchema : OperationSchema ;
25+ } ;
26+
1927 try {
2028 const response = await next ( args ) ;
21- const { clientName, commandName, logger, dynamoDbDocumentClientOptions = { } } = context ;
2229
23- const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions ;
24- const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context . inputFilterSensitiveLog ;
25- const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context . outputFilterSensitiveLog ;
30+ const { clientName, commandName, logger } = context ;
31+
32+ const inputLogFilter = operationSchema
33+ ? schemaLogFilter . bind ( operationSchema . input )
34+ : context . inputFilterSensitiveLog ;
35+ const outputLogFilter = operationSchema
36+ ? schemaLogFilter . bind ( operationSchema . output )
37+ : context . outputFilterSensitiveLog ;
2638
2739 const { $metadata, ...outputWithoutMetadata } = response . output ;
2840 logger ?. info ?.( {
2941 clientName,
3042 commandName,
31- input : inputFilterSensitiveLog ( args . input ) ,
32- output : outputFilterSensitiveLog ( outputWithoutMetadata ) ,
43+ input : inputLogFilter ( args . input ) ,
44+ output : outputLogFilter ( outputWithoutMetadata ) ,
3345 metadata : $metadata ,
3446 } ) ;
3547 return response ;
3648 } catch ( error ) {
37- const { clientName, commandName, logger, dynamoDbDocumentClientOptions = { } } = context ;
49+ const { clientName, commandName, logger } = context ;
3850
39- const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions ;
40- const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context . inputFilterSensitiveLog ;
51+ const inputLogFilter = operationSchema
52+ ? schemaLogFilter . bind ( operationSchema . input )
53+ : context . inputFilterSensitiveLog ;
4154
4255 logger ?. error ?.( {
4356 clientName,
4457 commandName,
45- input : inputFilterSensitiveLog ( args . input ) ,
58+ input : inputLogFilter ( args . input ) ,
4659 error,
4760 metadata : ( error as any ) . $metadata ,
4861 } ) ;
0 commit comments