You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-dev@logging.apache.org by "Gian Marco Gherardi (JIRA)" <ji...@apache.org> on 2013/10/11 14:47:42 UTC

[jira] [Comment Edited] (LOG4NET-400) ILog extension methods doesnt work as expected

    [ https://issues.apache.org/jira/browse/LOG4NET-400?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13792573#comment-13792573 ] 

Gian Marco Gherardi edited comment on LOG4NET-400 at 10/11/13 12:46 PM:
------------------------------------------------------------------------

I think the greatest flexibility would be to expose a method like the one found in CommonLogging (http://netcommon.sourceforge.net/docs/2.1.0/reference/html/ch01.html#logging-usage)

{code}
log.Debug( m => m("my expensive to calculate argument is: {0}", CalculateMessageInfo()) );
{code}

Meaning thet the lambda mixes in string.Format functionality found in ILog. With the current {{ILogExtensionsMethods}} implementation the same code must be written like this:

{code}
log.DebugExt( () => string.Format("my expensive to calculate argument is: {0}", CalculateMessageInfo()) );
{code}

Why not just porting CommonLogging implementation into Log4Net?


was (Author: gimmi):
I think the greatest flexibility would be to expose a method like the one found in CommonLogging (http://netcommon.sourceforge.net/docs/2.1.0/reference/html/ch01.html#logging-usage)

{code}
log.Debug( m => m("my expensive to calculate argument is: {0}", CalculateMessageInfo()) );
{code}

Meaning thet the lambda mixes in string.Format functionality found in ILog. With the current {{ILogExtensionsMethods}} implementation the same code must be written like this:

{code}
log.DebugExt( () => string.Format("my expensive to calculate argument is: {0}", CalculateMessageInfo()) );
{code}


> ILog extension methods doesnt work as expected
> ----------------------------------------------
>
>                 Key: LOG4NET-400
>                 URL: https://issues.apache.org/jira/browse/LOG4NET-400
>             Project: Log4net
>          Issue Type: Improvement
>            Reporter: Gian Marco Gherardi
>
> Hi, I'm trying the feature LOG4NET-290, but seems that the following format doesn't work:
>   log.Debug( m=>m("value= {0}", obj.Value) ); 
> Instead this seems the correct signature:
>   log.Debug(() => string.Format("value= {0}", obj.Value));
> That is not as convenient IMO. Another thing I've noticed is that there are also many extension methods that merely proxy the methods already supported by plain ILog. What's the reason for that? I mean ILog methods already skip logging if level is not active.



--
This message was sent by Atlassian JIRA
(v6.1#6144)