Skip to content

Commit d3209c4

Browse files
committed
Feat: Added and documented an optional 'event_logging' parameter to the macro to control weither or not the Lambda event is dumped in the log or not (default to true)
1 parent e9d37ee commit d3209c4

2 files changed

Lines changed: 25 additions & 5 deletions

File tree

lambda-appsync-proc/src/appsync_lambda_main/mod.rs

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ enum OptionalParameter {
7272
Hook(Ident),
7373
#[cfg(feature = "log")]
7474
LogInit(Ident),
75+
#[cfg(feature = "log")]
76+
EventLogging(bool),
7577
TypeOverride(TypeOverride),
7678
NameOverride(NameOverride),
7779
}
@@ -98,6 +100,8 @@ impl Parse for OptionalParameter {
98100
"hook" => Ok(Self::Hook(input.parse()?)),
99101
#[cfg(feature = "log")]
100102
"log_init" => Ok(Self::LogInit(input.parse()?)),
103+
#[cfg(feature = "log")]
104+
"event_logging" => Ok(Self::EventLogging(input.parse::<LitBool>()?.value())),
101105
"type_override" => Ok(Self::TypeOverride(input.parse()?)),
102106
"name_override" => Ok(Self::NameOverride(input.parse()?)),
103107
// Deprecated options
@@ -154,6 +158,8 @@ struct OptionalParameters {
154158
hook: Option<Ident>,
155159
#[cfg(feature = "log")]
156160
log_init: Option<Ident>,
161+
#[cfg(feature = "log")]
162+
event_logging: bool,
157163
tos: TypeOverrides,
158164
nos: NameOverrides,
159165
}
@@ -167,6 +173,8 @@ impl Default for OptionalParameters {
167173
hook: None,
168174
#[cfg(feature = "log")]
169175
log_init: None,
176+
#[cfg(feature = "log")]
177+
event_logging: true,
170178
tos: TypeOverrides::new(),
171179
nos: NameOverrides::new(),
172180
}
@@ -201,6 +209,10 @@ impl OptionalParameters {
201209
OptionalParameter::LogInit(ident) => {
202210
self.log_init.replace(ident);
203211
}
212+
#[cfg(feature = "log")]
213+
OptionalParameter::EventLogging(b) => {
214+
self.event_logging = b;
215+
}
204216
OptionalParameter::TypeOverride(to) => {
205217
// Retrieve the entry corresponding to `Type.field`
206218
let to_field_entry = self
@@ -320,8 +332,13 @@ impl AppsyncLambdaMain {
320332
#[allow(unused_mut)]
321333
let mut log_lines = proc_macro2::TokenStream::new();
322334
#[cfg(feature = "log")]
335+
if self.options.event_logging {
336+
log_lines.extend(quote! {
337+
::lambda_appsync::log::info!("event={event:?}");
338+
});
339+
}
340+
#[cfg(feature = "log")]
323341
log_lines.extend(quote! {
324-
::lambda_appsync::log::info!("event={event:?}");
325342
::lambda_appsync::log::info!("operation={:?}", event.info.operation);
326343
});
327344

@@ -436,10 +453,12 @@ impl AppsyncLambdaMain {
436453
#[allow(unused_mut)]
437454
let mut log_lines = proc_macro2::TokenStream::new();
438455
#[cfg(feature = "log")]
439-
log_lines.extend(quote! {
440-
::lambda_appsync::log::debug!("{event:?}");
441-
::lambda_appsync::log::info!("{}", ::lambda_appsync::serde_json::json!(event.payload));
442-
});
456+
if self.options.event_logging {
457+
log_lines.extend(quote! {
458+
::lambda_appsync::log::debug!("{event:?}");
459+
::lambda_appsync::log::info!("{}", ::lambda_appsync::serde_json::json!(event.payload));
460+
});
461+
}
443462

444463
tokens.extend(quote! {
445464
async fn function_handler(

lambda-appsync-proc/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ use proc_macro::TokenStream;
3030
/// - `batch = bool`: Enable/disable batch request handling (default: true)
3131
/// - `hook = fn_name`: Add a custom hook function for request validation/auth
3232
/// - (feature: `log`) `log_init = fn_name`: Use a custom log initialization function instead of the default one
33+
/// - (feature: `log`) `event_logging = bool`: If true, the macro will generate code to dump the entire event in the logs (default: `true`)
3334
/// - `exclude_lambda_handler = bool`: Skip generation of Lambda handler code
3435
/// - `only_lambda_handler = bool`: Only generate Lambda handler code
3536
/// - `exclude_appsync_types = bool`: Skip generation of GraphQL type definitions

0 commit comments

Comments
 (0)