@energica-city/shared-amplify-utils
Version:
Shared utilities for AWS Amplify projects
35 lines • 1.4 kB
TypeScript
import type { Middleware } from '../middlewareChain';
import type { RestInputWithModels, RestRequestLoggerConfig, RestResponse, DefaultModelTypes } from './types';
import type { AmplifyModelType } from '../../queries/types';
/**
* Creates REST request logger middleware for comprehensive request/response logging
*
* Provides structured logging of HTTP requests and responses with configurable detail levels,
* timing information, and data sanitization. Supports different log levels and can exclude
* sensitive fields from logs.
*
* @param config - Configuration options for logging behavior
* @returns Middleware function that logs requests and responses
*
* @example
* ```typescript
* // Basic logging
* const logger = createRestRequestLogger({
* logEvent: true,
* logResponse: true,
* logTiming: true
* });
*
* // Production logging with sensitive data exclusion
* const prodLogger = createRestRequestLogger({
* logRequestBody: false,
* excludeEventFields: ['authorization', 'password'],
* excludeResponseFields: ['token', 'secret'],
* logLevel: 'info'
* });
*
* chain.use('logger', logger);
* ```
*/
export declare function createRestRequestLogger<TTypes extends Record<string, AmplifyModelType> = DefaultModelTypes>(config?: RestRequestLoggerConfig): Middleware<RestInputWithModels<TTypes>, RestResponse>;
//# sourceMappingURL=RestRequestLogger.d.ts.map