You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by GitBox <gi...@apache.org> on 2020/09/01 07:38:51 UTC

[GitHub] [logging-log4net] cremor edited a comment on pull request #59: Update build system

cremor edited a comment on pull request #59:
URL: https://github.com/apache/logging-log4net/pull/59#issuecomment-684517717


   @fluffynuts I've just updated a few of my projects to log4net 2.0.9. First of all, thanks for your work! But I have to report a few problems and oddities:
   
   
   **Breaking change**
   One project that compiled fine before doesn't compile any more now. So there is a breaking change in 2.0.9. It's a netcoreapp3.1 project, so it uses the new netstandard2.0 assembly of log4net now (and previously used the netstandard1.3 assembly). The error is `'DebugAppender' does not contain a definition for 'ImmediateFlush'`.
   Seems like this is caused by your addition here
   https://github.com/apache/logging-log4net/blob/8178e512a4e2aba62ac2e2edd02ee8e650758368/src/log4net/Appender/DebugAppender.cs#L79
   which is triggered because the netstandard2.0 target also defines that constant here
   https://github.com/apache/logging-log4net/blob/8178e512a4e2aba62ac2e2edd02ee8e650758368/src/log4net/log4net.csproj#L57-L58
   I can see that `ImmediateFlush` would have had no effect in previous versions (because the if statement in the `Append` method had the target framework condition), but with netstandard2.0 this should be possible.
   
   So at least the netstandard2.0 assembly should contain that property (and maybe other properties that received a similar change in 2.0.9?). I assume this should be fixed by removing the `NETSTANDARD1_3` constant from the netstandard2.0 target.
   To prevent breaking changes the netstandard1.3 assembly should still contain it too. Or, if breaking changes are ok, it could be left removed there.
   
   
   **Dependencies**
   The nuspec file in the version 2.0.9 NuGet package contains a long list of dependent packages for the `.NETStandard2.0` target group. I'm not 100% sure about this, but this shouldn't be needed, right? Because .NET Standard 2.0 referes to the whole API anyway (unlike 1.x versions did).
   
   I think this dependency list is the reason why my netcoreapp3.1 project still needs the `<NoWarn>$(NoWarn);NU1605</NoWarn>` workaround to prevent errors like `Detected package downgrade: System.Net.NameResolution from 4.3.0 to 4.0.0. Reference the package directly from the project to select a different version.` during publish of the project. This workaround should not be needed any more with a netstandard2.0 target of log4net.
   
   
   
   **Assembly attributes**
   The netstandard2.0 assembly uses "Apache log4net for .NET Core 1.0" as `AssemblyTitleAttribte` and "2.0.9.0-.NET Core 1.0" as `AssemblyInformationalVersionAttribute`.
   
   
   PS: Sorry if this is not the right place to report issues, but I couldn't find a better one. It seems like the log4net Jira is not used any more and issues are not enabled in this GitHub project.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org