[
https://issues.apache.org/jira/browse/LOG4NET-290?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13797800#comment-13797800
]
Dominik Psenner commented on LOG4NET-290:
-----------------------------------------
{quote}
I expect that usage of this method will look like this:
??logger.DebugExt(() => string.Format("Total value is {0}",
CalculateTotalValue());
After that it's much harder to extract actual arguments of template.
I understand that it is just my opinion and my case, but it was so good that
log4net keeps these things (template and args) separated and I was impressed
about it.
{quote}
As I see it, this signature is there for another purpose, namely to create
objects that can be passed into custom object renderers such as:
{quote}
logger.DebugExt(() => new MyCustomLogObjectBasedOn(otherObjectFoo,
otherObjectBar))
{quote}
without requiring to write:
{quote}
if(logger.IsDebugEnabled)
{
logger.Debug(new MyCustomLogObjectBasedOn(otherObjectFoo, otherObjectBar))
}
{quote}
but still getting the performance benefits of lazy object instantiation.
whereas this:
{quote}logger.DebugExt(() => string.Format("Total value is {0}",
CalculateTotalValue());{quote}
will be written as:
{quote}logger.DebugFormat("Total value is {0}", CalculateTotalValue()){quote}
or:
{quote}logger.DebugFormatExt("Total value is {0}", CalculateTotalValue()){quote}
> Add Lambda-based ILog-Extensions (embedded log.IsEnabled)
> ---------------------------------------------------------
>
> Key: LOG4NET-290
> URL: https://issues.apache.org/jira/browse/LOG4NET-290
> Project: Log4net
> Issue Type: New Feature
> Components: Core
> Affects Versions: 1.2.10
> Reporter: Lars Corneliussen
> Assignee: Dominik Psenner
> Fix For: 1.2.12
>
> Attachments: LOG4NET-290-doc.patch, LOG4NET-290.patch
>
>
> This statement:
> if (log.IsDebugEnabled) log.DebugFormat("x: {0}", 123)
> Could be nicely shortened to:
> log.Debug( m=>m("value= {0}", obj.Value) );
> I'm already apache committer (NPanday Incubator Project) and would be happy
> to help with this interface. The simplest thing would be to offer it as
> static Extension-Methods to ILog.
--
This message was sent by Atlassian JIRA
(v6.1#6144)