Unformatted trace logging for step telemetry in ExecutionContext #3581
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.
Don't apply JSON formatting during the trace logging for step telemetry. By default
StringUtil.ConvertToJson
usesFormatting.Indented
which causes multi-line logs for this particular json object.The data contained in this particular log line is useful for operators of self-hosted runners who are looking to use log aggregates to understand their overall usage and performance. Parsing multi-line data in log aggregates is very hard to get right, if not outright impossible depending on how logs are aggregated.
Note to reviewers
Unfortunately I found it hard to add a test for this (and arguably adding a test for a Trace is perhaps not something one may want to do?) given that the
Tracing
object is private so testing via something like TraceListener looked like it would entail a lot more changes. However the test logs confirm that indeed it now prints the relevant log in a single line rather than multiple