Replace custom ILog implementation with Microsoft.Extensions.Logging and Serilog #4743
+343
−152
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.



Description
Work in Progress - Replaces custom logging infrastructure with standard Microsoft.Extensions.Logging.Abstractions and Serilog. This enables source generator support and aligns with modern .NET logging patterns.
Infrastructure Changes
LoggingModulefor Serilog configuration with console and file sinksLoggerExtensionsprovidingIndentLog()andSeparator()extension methods forILoggerCliHostto parse arguments early and configure Serilog before DI container initializationCode Changes
ILogtoILogger<T>:VersionCalculatorBasegeneric (VersionCalculatorBase<T>) to support typed logger inheritancelog.Info()→logger.LogInformation(),log.Debug()→logger.LogDebug(), etc.Remaining Work
ILogger<T>cannot be passed between classes with different types. Need to injectILoggerFactoryand create appropriately typed loggers.Current build status: GitVersion.Core has compilation errors due to logger type mismatches in manual object creation.
Related Issue
Fixes #[ISSUE]
Motivation and Context
Custom logging implementation prevents use of .NET source generators and doesn't align with ecosystem standards. Migration to Microsoft.Extensions.Logging enables better tooling integration and maintains consistency with modern .NET applications.
How Has This Been Tested?
Screenshots (if appropriate):
N/A
Checklist:
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.