Skip to content
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

CLRIE Message logging is too verbose #148

Open
WilliamXieMSFT opened this issue Oct 7, 2019 · 2 comments
Open

CLRIE Message logging is too verbose #148

WilliamXieMSFT opened this issue Oct 7, 2019 · 2 comments

Comments

@WilliamXieMSFT
Copy link
Member

Currently, the LogLevel Message causes extremely high overhead (to the point of uselessness for anything except development time, and even then it's quite large).

In addition, the current logging infrastructure could be refactored/restructured to delay dynamic allocations of strings for prefixes such as time from the InstrumentationMethod to some public interface supporting logging with VarArgs by the ProfilerManager. This would reduce memory size taken by CLRIE (and any snapshots generated) by reducing the memory page changes due to logging. This latter discussion could be moved to another Issue, but I want to jot it down somewhere for now.

@jakubch1
Copy link
Member

Any plans on this?

Variable Value Description
MicrosoftInstrumentationEngine_LogLevel "Errors|Messages|Dumps|All" Filters logs. Currently only "Errors" is allowed for EventLogging to prevent verbose logging.
MicrosoftInstrumentationEngine_LogLevel_GUID "Errors|Messages|Dumps|All" Filters logs for InstrumentationMethods. Currently only "Errors" is allowed to prevent verbose logging.

Is this implemented? Can we set CLRIE to Errors and our instrumentation method to Dumps for example?

@WilliamXieMSFT
Copy link
Member Author

Yes, details of how to use the logger can be found at https://github.com/microsoft/CLRInstrumentationEngine/blob/develop/docs/logging.md#logging-consumers-

Your InstrumentationMethod should obtain the logger via IProfilerManager::GetLoggingInstance().

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants