Fix parsing of log-levels by removing date/time prefix #440
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
TF_LOG
andTF_LOG_PROVIDER
environment variables should be able to filter the provider logs based on the log level (DEBUG
,INFO
,WARN
,ERROR
etc). However, the default logger in thelog
package prepends the date and time to each log line. This breaks the parsing of the logs in Terraform core, as it expects each line to start with the log level in square brackets. Instead, it finds the date and defaults every line toINFO
regardless of the intended severity. An example of how this line is outputed is as follows:Here you can see that we intended to log as a
DEBUG
level, but it ended up coming out asINFO
. The timestamp is also duplicated everywhere.To fix this, the default logger can be configured to skip prepending the timestamp using
log.SetFlags(0)
. With this change, the log line now becomes:Setting the
TF_LOG
environment variable toINFO
also means that this line prevented from being outputted. This should help to filter the logs better in some situations.