-
Notifications
You must be signed in to change notification settings - Fork 157
docs(logger): remove logEvent from required settings #1821
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -50,8 +50,6 @@ These settings will be used across all logs emitted: | |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------- | ------------------------------- | ------------------- | ------------------------------------------------------ | ------------------- | --------------------- | | ||
| **Service name** | Sets the name of service of which the Lambda function is part of, that will be present across all log statements | `POWERTOOLS_SERVICE_NAME` | `service_undefined` | Any string | `serverlessAirline` | `serviceName` | | ||
| **Logging level** | Sets how verbose Logger should be, from the most verbose to the least verbose (no logs) | `POWERTOOLS_LOG_LEVEL` | `INFO` | `DEBUG`, `INFO`, `WARN`, `ERROR`, `CRITICAL`, `SILENT` | `ERROR` | `logLevel` | | ||
| **Log incoming event** | Whether to log or not the incoming event when using the decorator or middleware | `POWERTOOLS_LOGGER_LOG_EVENT` | `false` | `true`, `false` | `false` | `logEvent` | | ||
| **Debug log sampling** | Probability that a Lambda invocation will print all the log items regardless of the log level setting | `POWERTOOLS_LOGGER_SAMPLE_RATE` | `0` | `0.0` to `1` | `0.5` | `sampleRateValue` | | ||
|
||
#### Example using AWS Serverless Application Model (SAM) | ||
|
||
|
@@ -153,7 +151,7 @@ In each case, the printed log will look like this: | |
} | ||
``` | ||
|
||
#### Log incoming event | ||
### Log incoming event | ||
|
||
When debugging in non-production environments, you can instruct Logger to log the incoming event with the middleware/decorator parameter `logEvent` or via `POWERTOOLS_LOGGER_LOG_EVENT` env var set to `true`. | ||
|
||
|
@@ -174,6 +172,9 @@ When debugging in non-production environments, you can instruct Logger to log th | |
|
||
1. Binding your handler method allows your handler to access `this` within the class methods. | ||
|
||
Logging incoming events only works with middy or decorator by using `injectLambdaContext`. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think this first sentence is somewhat redundant as it rephrases the one above almost entirely ( I think most of the confusion we have seen reports of is related to the fact that just enabling the env variable is not enough, which is addressed by the next sentence you've added. Maybe we could just rephrase the initial sentence to be more specific rather than adding another one. What do you think? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Simplified wording. |
||
Only setting `POWEETOOLS_LOGGER_LOG_EVENT` to `true` will not log the incoming event. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There's a typo in the environment variable name |
||
|
||
### Appending persistent additional log keys and values | ||
|
||
You can append additional persistent keys and values in the logs generated during a Lambda invocation using either mechanism: | ||
|
@@ -389,6 +390,18 @@ The error will be logged with default key name `error`, but you can also pass yo | |
!!! tip "Logging errors and log level" | ||
You can also log errors using the `warn`, `info`, and `debug` methods. Be aware of the log level though, you might miss those errors when analyzing the log later depending on the log level configuration. | ||
|
||
### Environment variables | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We have this table in the main page (here) where we keep track of all env variables, including the ones below. Should we just link that one? I'm not sure, what do you think? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, let's keep it one place. |
||
|
||
The following environment variables are available to configure Logger at a global scope: | ||
|
||
|
||
| Setting | Description | Environment variable | Default Value | Allowed Values | Example Value | Constructor parameter | | ||
| ---------------------- |-----------------------------------------------------------------------------------------------------------------| ------------------------------- | ------------------- | ------------------------------------------------------ | ------------------- | --------------------- | | ||
| **Service name** | Sets the name of service of which the Lambda function is part of, that will be present across all log statements | `POWERTOOLS_SERVICE_NAME` | `service_undefined` | Any string | `serverlessAirline` | `serviceName` | | ||
| **Logging level** | Sets how verbose Logger should be, from the most verbose to the least verbose (no logs) | `POWERTOOLS_LOG_LEVEL` | `INFO` | `DEBUG`, `INFO`, `WARN`, `ERROR`, `CRITICAL`, `SILENT` | `ERROR` | `logLevel` | | ||
| **Log event** | Whether to log or not the incoming event when using the decorator or middleware | `POWERTOOLS_LOGGER_LOG_EVENT` | `false` | `true`, `false` | `true` | `logEvent` | | ||
| **Sample rate** | Probability that a Lambda invocation will print all the log items regardless of the log level setting | `POWERTOOLS_LOGGER_SAMPLE_RATE` | `0` | `0.0` to `1.0` | `0.1` | `sampleRateValue` | | ||
|
||
|
||
## Advanced | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rather than removing the
sampleRateValue
from here I would instead change the wording above to remove the "required" mention entirely.My reasoning here is that none of the settings is really required since they all have defaults and they are all typed as such.
So to sum up I'd change the first sentence from what it is now to something along the lines of:
The logger accepts three settings.
or something similar.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My goal was to align it with python docs and have a dedicated section for env variables.
I think the confusion comes from the phrase 'or pass them in the constructor' and because we mix environment variables and constructor settings, which overlap with exceptions. So if we keep three ENVs that are also part of the constructor people might assume that the other constructor values are missing from the docs.
We could add additional deep link to API docs to the constructor. What do you think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think having a section to the env variables or linking to the existing one in the main page is great.
I was mainly arguing against the "required" wording which is really not true, and at the same time wanting to have a place to get started quickly.
As a user I want to read at the very top of the page how to get started using the library either because I don't know or remember it. Having all the applicable settings surfaced early is useful and we have evidence that customers are doing this (we had multiple reports about
logEvent
being out of place here).I'm in favor of deep linking the API docs and making the wording clearer if needed, but I wouldn't remove the parameter from here.