logging-log4net-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Goldfinger (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (LOG4NET-281) Insufficient Granularity on Log methods in ILog
Date Tue, 26 Nov 2013 09:38:36 GMT

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

Michael Goldfinger edited comment on LOG4NET-281 at 11/26/13 9:36 AM:
----------------------------------------------------------------------

Sorry this Issue is pretty old but I have to ask.
When and under which conditions is adding new methods without changing the old ones a breaking
change?
But I stick with Stefan Bodewig that this would break backwards compatibility.
I just could not see any harm in losing backwards compatibility, only if using the new Methods.
However this Methods could also be added using Extension Methods.


was (Author: swtrse):
Sorry this Issue is pretty old but I have to ask.
When and under which conditions adding new methods without changing the old ones an breaking
change?
But I stick with Stefan Bodewig that this would break backwards compatibility.
I just could not see any harm in losing backwards compatibility, only if using the new Methods.
However this Methods could also be added using Extension Methods.

> Insufficient Granularity on Log methods in ILog
> -----------------------------------------------
>
>                 Key: LOG4NET-281
>                 URL: https://issues.apache.org/jira/browse/LOG4NET-281
>             Project: Log4net
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 1.2.10
>         Environment: All Environments
>            Reporter: Zev
>             Fix For: 1.3.0
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> The driver for this change is that we are unable to log certain event types from the
ILog object. While we can use the Logger object, it is easier to have them here.
> updated code:
> ILog.cs
>         //start new
>         void Emergency(object message);
>         void Emergency(object message, Exception e);
>         void Alert(object message);
>         void Alert(object message, Exception e);
>         void Critical(object message);
>         void Critical(object message, Exception e);
>         void Notice(object message);
>         void Notice(object message, Exception e);
>         //end new
> LogImpl.cs (in ReloadLevels)
>             //start new
>             m_levelEmergency = levelMap.LookupWithDefault(Level.Emergency);
>             m_levelAlert = levelMap.LookupWithDefault(Level.Alert);
>             m_levelCritical = levelMap.LookupWithDefault(Level.Critical);
>             m_levelNotice = levelMap.LookupWithDefault(Level.Notice);
>             //end new
> methods:
>         //start new
>         virtual public void Emergency(object message)
>         {
>             Logger.Log(ThisDeclaringType, m_levelEmergency, message, null);
>         }
>         virtual public void Emergency(object message, Exception exception)
>         {
>             Logger.Log(ThisDeclaringType, m_levelEmergency, message, exception);
>         }
>         virtual public void Alert(object message)
>         {
>             Logger.Log(ThisDeclaringType, m_levelAlert, message, null);
>         }
>         virtual public void Alert(object message, Exception exception)
>         {
>             Logger.Log(ThisDeclaringType, m_levelAlert, message, exception);
>         }
>         virtual public void Critical(object message)
>         {
>             Logger.Log(ThisDeclaringType, m_levelCritical, message, null);
>         }
>         virtual public void Critical(object message, Exception exception)
>         {
>             Logger.Log(ThisDeclaringType, m_levelCritical, message, exception);
>         }
>         virtual public void Notice(object message)
>         {
>             Logger.Log(ThisDeclaringType, m_levelNotice, message, null);
>         }
>         virtual public void Notice(object message, Exception exception)
>         {
>             Logger.Log(ThisDeclaringType, m_levelNotice, message, exception);
>         }
>         //end new
> private fields:
>         //start new
>         private Level m_levelEmergency;
>         private Level m_levelAlert;
>         private Level m_levelCritical;
>         private Level m_levelNotice;
>         //end new



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

Mime
View raw message