Register custom logger before it gets used #2438
Merged
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.
Summary
When
ECS_LOGLEVEL
is set in Agent config file, healthcheck outputs shows following error --[Error] format error: unrecognized formatter at 1: EcsAgentLogfmt\n"
It's because when
ECS_LOGLEVEL
is set, logger tries to loadEcsAgentLogFmt
custom formatter before it is initiated.EcsAgentLogFmt
gets loaded here -- https://github.com/aws/amazon-ecs-agent/blob/master/agent/logger/log.go#L97 which is being called bySetLevel()
here -- https://github.com/aws/amazon-ecs-agent/blob/master/agent/logger/log.go#L97.Currently custom formatter is initiated here -- https://github.com/aws/amazon-ecs-agent/blob/master/agent/logger/log.go#L167
Moving the initiation of custom formatter before
SetLevel
ensure that the formatter is initiated before it is getting loaded.Implementation details
Testing
Steps to reproduce the issue --
ECS_LOGLEVEL=debug
in /etc/ecs/ecs.config on al2.docker inspect <agent container id>
. Health check shows errorformat error: unrecognized formatter at 1: EcsAgentLogfmt\n
After the change, the health check was passing with
ECS_LOGLEVEL
set and I could see logs getting generated as expected in Agent log directory.Description for the changelog
Bug - Health check output shows error message when ECS_LOGLEVEL is set in Agent config file.
Licensing
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.