Skip to content
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

Remove deprecated code for 3.0 #125

Open
erikmav opened this issue Mar 14, 2024 · 4 comments
Open

Remove deprecated code for 3.0 #125

erikmav opened this issue Mar 14, 2024 · 4 comments
Milestone

Comments

@erikmav
Copy link
Contributor

erikmav commented Mar 14, 2024

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.

@FreeAndNil
Copy link
Contributor

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?

@FreeAndNil FreeAndNil added this to the 3.0.0 milestone Mar 15, 2024
@fluffynuts
Copy link
Contributor

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.

@FreeAndNil
Copy link
Contributor

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.

@FreeAndNil
Copy link
Contributor

FreeAndNil commented Apr 3, 2024

Deleted obsolete API:

  • obsolete since 1.2.14 - 2015
    • 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
  • obsolete since 2.0.6 - 2016
    • log4net.Util.SystemInfo.ProcessStartTime

Other changes:

  • log4net.Config.AliasRepositoryAttribute is now sealed
  • log4net.Config.RepositoryAttribute is now sealed
  • log4net.Config.XmlConfiguratorAttribute is now sealed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants