Closed erikmav closed 5 months ago
I agree with removing the obsolete classes and methods.
I'm not sure about NDC. Looking at the code it seems to be explicitly un-deprecated and there are many uses https://github.com/search?q=NDC.Push+path%3A*.cs+language%3AC%23&type=Code&ref=advsearch&l=C%23&l=
The class is just a wrapper around ThreadContext.Stacks["NDC"], so the gain for removing it would be small against the anger we could cause ;-)
When we DO want to remove it, we would do it later and first mak it (again) as deprecated.
@fluffynuts what do you think?
I agree - something marked [Obsolete]
can go, something that still works, even if it's only for a few users, can stay. And we should be very judicial about deprecations - I'd much rather keep the library useful for as many people as possible, so even if some part looks unused, if it works, leave it in until there's no other option but to lose it.
OK. I would propose releasing the first 3.0.0 preview with the obsolete classes, so that we could deploy this version in our company and to other "willing" users. Then we remove those classes in the next preview for 3.0.0.
Deleted obsolete API:
log4net.Appender.BufferingAppenderSkeleton.OnlyFixPartialEventData
log4net.Appender.ColoredConsoleAppender.ctor(ILayout)
log4net.Appender.ColoredConsoleAppender.ctor(ILayout, bool)
log4net.Appender.ConsoleAppender.ctor(ILayout)
log4net.Appender.ConsoleAppender.ctor(ILayout, bool)
log4net.Appender.DebugAppender.ctor(ILayout)
log4net.Appender.EventLogAppender.ctor(ILayout)
log4net.Appender.FileAppender.ctor(ILayout, string)
log4net.Appender.FileAppender.ctor(ILayout, string, bool)
log4net.Appender.MemoryAppender.OnlyFixPartialEventData
log4net.Appender.SmtpAppender.LocationInfo
log4net.Appender.TextWriterAppender.ctor(ILayout, Stream)
log4net.Appender.TextWriterAppender.ctor(ILayout, TextWriter)
log4net.Appender.TraceAppender.ctor(ILayout)
log4net.Config.DOMConfigurator
log4net.Config.AliasDomainAttribute
log4net.Config.DomainAttribute
log4net.Config.DOMConfiguratorAttribute
log4net.Core.LoggerManager.GetLoggerRepository
log4net.Core.LoggerManager.CreateDomain
log4net.Core.LoggingEventData.TimeStamp
log4net.Core.LoggingEvent.GetExceptionStrRep
log4net.Core.LoggingEvent.FixVolatileData
log4net.LogManager.GetLoggerRepository
log4net.LogManager.CreateDomain
log4net.Util.SystemInfo.ProcessStartTime
Other changes:
log4net.Config.AliasRepositoryAttribute
is now sealedlog4net.Config.RepositoryAttribute
is now sealedlog4net.Config.XmlConfiguratorAttribute
is now sealed
There are numerous parts of the code that are marked with [Obsolete] attributes. Additionally there is code that may or may not any longer be in use, such as NDC (src/log4net/NDC.cs). Ideally with the major version change the deprecations should be removed.