-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Add support for logging with more than 6 arguments at runtime #55525
Comments
Tagging subscribers to this area: @maryamariyan Issue DetailsBackground and MotivationAs part of .NET 6 we updated the new Later in .NET 7, for supporting more arguments, we could add a new Theoretically we need an analyzer that makes sure the arguments of the new Define API are proper (ILogger etc.). The source generator would not be using the new Define (where T is delegate) API. (not source gen friendly). We welcome API proposals! We have a process to evaluate the value and shape of new API. There is an overview of our process . This template will help us gather the information we need to start the review process. Proposed APISomething like: public static partial class LoggerMessage
{
+ public static void Define<T>(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString, Microsoft.Extensions.Logging.LogOptions options) where T : delegate { throw null; }
}
TODO
cc: @davidfowl @eerhardt
|
@tarekgh any update on this, please? |
We couldn't get into this yet because we are occupied with other high-priority tasks. |
Background and Motivation
As part of .NET 6 we updated the new
LoggerMessage.Define
overloads to useLogDefineOptions
. (PR here and issue #50913)Later in .NET 7, for supporting more arguments, we could add a new
Define<T>
API (where T is a delegate) that would take n arguments, log level, event ID, format string andLogDefineOptions
to log message.Theoretically we need an analyzer that makes sure the arguments of the new Define API are proper (ILogger etc.). The source generator would not be using the new Define (where T is delegate) API. (not source gen friendly).
We welcome API proposals! We have a process to evaluate the value and shape of new API. There is an overview of our process . This template will help us gather the information we need to start the review process.
First, please describe the purpose and value of the new API here.
Proposed API
Something like:
public static partial class LoggerMessage { + public static void Define<T>(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString, Microsoft.Extensions.Logging.LogOptions options) where T : delegate { throw null; } }
T
would be a delegate but an analyzer would need to make sure it takes ILogger, Exception, etc.System.Action<Microsoft.Extensions.Logging.ILogger, T1, T2, ..., Tn, System.Exception?>
TODO
cc: @davidfowl @eerhardt
The text was updated successfully, but these errors were encountered: