This change modifies the logging framework within sqltoolservice.
Moves away from custom Logger object to start using .Net tracing framework. It supports for the static Trace and TraceSource way of logging. For all new code it is recommend that we log the log messages using the existing static Logger class, while the code changes will continue to route the older Trace.Write* calls from the process to same log listeners (and thus the log targets) as used by the Logger class. Thus tracing in SMO code that uses Trace.Write* methods gets routed to the same file as the messages from rest of SQLTools Service code.
Make changes to start using .Net Frameworks codebase for all logging to unify our logging story.
Allows parameter to set tracingLevel filters that controls what kinds of message make it to the log file.
Allows a parameter to set a specific log file name so if these gets set by external code (the UI code using the tools service for example) then the external code is aware of the current log file in use.
Adding unittests to test out the existing and improved logging capabilities.
Sequences of checkins in development branch:
* Saving v1 of logging to prepare for code review. Minor cleanup and some end to end testing still remains
* Removing local launchSettings.json files
* added support for lazy listener to sqltoolsloglistener and removed incorrect changes to comments across files in previous checkin
* Converting time to local time when writing entries to the log
* move the hosting.v2 to new .net based logging code
* removing *.dgml files and addding them to .gitignore
* fixing typo of defaultTraceSource
* Addressing pull request feedback
* Adding a test to verify logging from SMO codebase
* propogating changes to v1 sqltools.hosting commandoptions.cs to the v2 version
* Fixing comments on start and stop callstack methods and whitespaces
* Commenting a test that got uncommented by mistake
* addding .gitattributes file as .sql file was observed to be misconstrued as a binary file
* Revert "fixed perf tests and added more scenarios (#683)"
This reverts commit aa2b30f486.
* Revert "Switch to the unified SMO NuGet so all binaries are strong named and signed. (#682)"
This reverts commit 69961992bb.
* add string serialization
* add unadded file
* changed code to be testable, added test
* moved test to correct location
* change to send undefined rather than error if the serialization fails
* update request name
* Upgrade SMO packages to fix issue with scripting tables when Script Dependencies is true on the script options.
* use linux style import with case matching file name
* Add IncludePassword flag to get connection string method
* Override connection application name
* Fix typo
* Fix test break
* Use ****** as password placeholder
* fixed bug where execution time was wrong for multiple batches
* fixed bug where multiple execution would show wrong execution time
* simplified logic
* Fix GUID parse error breaking on-prem connections
- Fixes https://github.com/Microsoft/sqlopsstudio/issues/1896
- Verified this is only used in retry logic on Azure, so the fact it's failing on-prem isn't relevant. It's still unclear why in some cases the session ID is non-null but not a GUID.
* Added back logging if parse of the GUID fails
* added support for t-sql parse
* added syntax parse to language service instead
* fixed misleading error
* code review comments
* fixed run state logic
* Initial changes for adding lost event notifications
* Handling polling errors by notifying listeners
* Restructuring lost events & testing
* Minor fixes to tests
* Add back in filtering
* Changing how lost events are found
* Cleaning up tests
* Agent Proxy account WIP
* Fixup Credential create\update\delete handlers
* Use current user for test credential
* Cleanup and delete code
* Convert tabs to spaces
* Additional SQL Agent config classes (WIP)
* Fix build breaks
* Clean up job step code
* Add VS Code build files
* Move changes to other machine
* More of the action execution classes
* More execution processing refactors
* More refactoring
* Disable tests for WIP merge
* Fix break on Release config
* Stage changes to other machine.
* Initial non-refactored SQL Agent alert classes (WIP)
* Move agent classes into subdirectories
* Refactor the agent config code a bit more
* Add more implementation for handlers
* Add more code to the create alert handler
* Clean up agent alert class
* Clean up alert methods a bit
* Initial Operator contracts
* Additonal SQL Agent config changes
* More Proxy config cleanup
* Cleanup AgentProxy class
* Additional cleanups
* Run SRGen
* Add security service to create credential objects