This change adds Azure Application Insights telemetry to the application. For now, only logs are sent to AppInsights, but in the future custom events or metrics can also be sent (e.g. to track predictions or training runs).
The change also includes some improvements/refactoring to the logger class:
Factor out shared logging code
Avoid doing work in constructor
Remove custom singleton implementation
All Submissions:
[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[x] Does each method or function "do one thing well"? Reviewers may recommend methods be split up for maintainability and testability.
[x] Is this code designed to be testable?
[x] Is the code documented well?
[x] Does your submission pass existing tests (or update existing tests with documentation regarding the change)?
[x] Have you added tests to cover your changes? Not application: refactor
[x] Have you linted your code prior to submission?
[x] Have you updated the documentation and README?
[x] Is PII treated correctly? In particular, make sure the code is not logging objects or strings that might contain PII (e.g. request headers). Not application: refactor
[x] Have secrets been stripped before committing? Not application: refactor
This change adds Azure Application Insights telemetry to the application. For now, only logs are sent to AppInsights, but in the future custom events or metrics can also be sent (e.g. to track predictions or training runs).
The change also includes some improvements/refactoring to the logger class:
All Submissions:
[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
[x] Does your PR follow our Code of Conduct?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[x] Does each method or function "do one thing well"? Reviewers may recommend methods be split up for maintainability and testability.
[x] Is this code designed to be testable?
[x] Is the code documented well?
[x] Does your submission pass existing tests (or update existing tests with documentation regarding the change)?
[x] Have you added tests to cover your changes? Not application: refactor
[x] Have you linted your code prior to submission?
[x] Have you updated the documentation and README?
[x] Is PII treated correctly? In particular, make sure the code is not logging objects or strings that might contain PII (e.g. request headers). Not application: refactor
[x] Have secrets been stripped before committing? Not application: refactor