This is an automated email from the ASF dual-hosted git repository. davydm pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/logging-log4net.git
commit 730d7bf695f4a02a9b7e1ffc10f5e2928df5bcc6 Author: Davyd McColl <[email protected]> AuthorDate: Fri Jul 22 14:36:54 2022 +0200 :white_check_mark: try to repro LOG4NET-611, but no go --- .../log4net-611-lib/DerivedAppender.cs | 8 ++++ .../log4net-611-lib/log4net-611-lib.csproj | 15 +++++++ .../log4net-611-main/Program.cs | 48 ++++++++++++++++++++++ .../log4net-611-main/log4net-611-main.csproj | 21 ++++++++++ .../log4net-611-main/log4net.config | 28 +++++++++++++ src/log4net.sln | 14 +++++++ 6 files changed, 134 insertions(+) diff --git a/src/integration-testing/log4net-611-lib/DerivedAppender.cs b/src/integration-testing/log4net-611-lib/DerivedAppender.cs new file mode 100644 index 00000000..a22b4267 --- /dev/null +++ b/src/integration-testing/log4net-611-lib/DerivedAppender.cs @@ -0,0 +1,8 @@ +using log4net.Appender; +using log4net.Layout; + +namespace log4net_611_lib; + +public class DerivedAppender: RollingFileAppender +{ +} \ No newline at end of file diff --git a/src/integration-testing/log4net-611-lib/log4net-611-lib.csproj b/src/integration-testing/log4net-611-lib/log4net-611-lib.csproj new file mode 100644 index 00000000..07a87a15 --- /dev/null +++ b/src/integration-testing/log4net-611-lib/log4net-611-lib.csproj @@ -0,0 +1,15 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <TargetFramework>netstandard2.0</TargetFramework> + <RootNamespace>log4net_611_lib</RootNamespace> + <ImplicitUsings>disable</ImplicitUsings> + <Nullable>disable</Nullable> + <LangVersion>latest</LangVersion> + </PropertyGroup> + + <ItemGroup> + <PackageReference Include="log4net" Version="2.0.14" /> + </ItemGroup> + +</Project> diff --git a/src/integration-testing/log4net-611-main/Program.cs b/src/integration-testing/log4net-611-main/Program.cs new file mode 100644 index 00000000..b0a7815c --- /dev/null +++ b/src/integration-testing/log4net-611-main/Program.cs @@ -0,0 +1,48 @@ +// See https://aka.ms/new-console-template for more information + +using System.Reflection; +using log4net; +using log4net.Config; +using log4net_611_lib; + +var appPath = new Uri(Assembly.GetExecutingAssembly().Location).LocalPath; +var appFolder = Path.GetDirectoryName(appPath); +// force loading the assembly, otherwise the appender type isn't found later +Assembly.LoadFile(Path.Combine(appFolder, "log4net-611-lib.dll")); + +var configFile = Path.Combine(appFolder, "log4net.config"); +if (!File.Exists(configFile)) +{ + throw new InvalidOperationException($"log4net.config not found at {configFile}"); +} + +if (Directory.Exists("Logs")) +{ + Console.WriteLine("Clearing out old logs..."); + foreach (var file in Directory.EnumerateFiles("Logs")) + { + File.Delete(file); + } +} + +var info = new FileInfo(configFile); +var logRepo = LogManager.GetRepository(Assembly.GetExecutingAssembly()); +XmlConfigurator.ConfigureAndWatch( + logRepo, + info +); + +var logger = LogManager.GetLogger(typeof(Program)); + +Console.WriteLine("logging..."); +for (var i = 0; i < 10; i++) +{ + logger.Info($"test log {i}"); +} + + +foreach (var file in Directory.EnumerateFiles("Logs")) +{ + Console.WriteLine($"log file: {file}"); + Console.WriteLine(File.ReadAllText(file)); +} \ No newline at end of file diff --git a/src/integration-testing/log4net-611-main/log4net-611-main.csproj b/src/integration-testing/log4net-611-main/log4net-611-main.csproj new file mode 100644 index 00000000..e6e8da91 --- /dev/null +++ b/src/integration-testing/log4net-611-main/log4net-611-main.csproj @@ -0,0 +1,21 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>net6.0</TargetFramework> + <RootNamespace>log4net_611_main</RootNamespace> + <ImplicitUsings>enable</ImplicitUsings> + <Nullable>enable</Nullable> + </PropertyGroup> + + <ItemGroup> + <ProjectReference Include="..\log4net-611-lib\log4net-611-lib.csproj" /> + </ItemGroup> + + <ItemGroup> + <None Update="log4net.config"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> + </ItemGroup> + +</Project> diff --git a/src/integration-testing/log4net-611-main/log4net.config b/src/integration-testing/log4net-611-main/log4net.config new file mode 100644 index 00000000..08611e89 --- /dev/null +++ b/src/integration-testing/log4net-611-main/log4net.config @@ -0,0 +1,28 @@ +<log4net> + <appender name="LogFileAppenderXML" type="log4net_611_lib.DerivedAppender"> + <file value="Logs\.xml" /> + <datePattern value="yyyy-MM-dd-'Xyz'" /> + <appendToFile value="true" /> + <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> + <rollingStyle value="Composite" /> + <maxSizeRollBackups value="40" /> + <maximumFileSize value="1KB" /> + <preserveLogFileNameExtension value="true" /> + <staticLogFileName value="false" /> + <layout type="log4net.Layout.PatternLayout"> + <conversionPattern value="[console] %message%newline" /> + </layout> + <immediateFlush value="true" /> + </appender> + <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> + <target value="Console.Out" /> + <layout type="log4net.Layout.PatternLayout"> + <conversionPattern value="[console] %message%newline" /> + </layout> + </appender> + <root> + <level value="ALL"/> + <appender-ref ref="LogFileAppenderXML" /> + <appender-ref ref="ConsoleAppender" /> + </root> +</log4net> \ No newline at end of file diff --git a/src/log4net.sln b/src/log4net.sln index eeaf125d..44750e9c 100644 --- a/src/log4net.sln +++ b/src/log4net.sln @@ -28,6 +28,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "integration-testing", "inte EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "log4net-672", "integration-testing\log4net-672\log4net-672.csproj", "{9050922E-E22E-4FF5-A1B0-2F21745C6882}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "log4net-611-main", "integration-testing\log4net-611-main\log4net-611-main.csproj", "{2087EDC5-689F-406C-947C-06C5F321CA8C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "log4net-611-lib", "integration-testing\log4net-611-lib\log4net-611-lib.csproj", "{D818035F-0345-49EF-9AB9-021583986CE2}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -46,11 +50,21 @@ Global {9050922E-E22E-4FF5-A1B0-2F21745C6882}.Debug|Any CPU.Build.0 = Debug|Any CPU {9050922E-E22E-4FF5-A1B0-2F21745C6882}.Release|Any CPU.ActiveCfg = Release|Any CPU {9050922E-E22E-4FF5-A1B0-2F21745C6882}.Release|Any CPU.Build.0 = Release|Any CPU + {2087EDC5-689F-406C-947C-06C5F321CA8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2087EDC5-689F-406C-947C-06C5F321CA8C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2087EDC5-689F-406C-947C-06C5F321CA8C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2087EDC5-689F-406C-947C-06C5F321CA8C}.Release|Any CPU.Build.0 = Release|Any CPU + {D818035F-0345-49EF-9AB9-021583986CE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D818035F-0345-49EF-9AB9-021583986CE2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D818035F-0345-49EF-9AB9-021583986CE2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D818035F-0345-49EF-9AB9-021583986CE2}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution {9050922E-E22E-4FF5-A1B0-2F21745C6882} = {8953473C-EEE8-4740-993D-B8E10FA876CD} + {2087EDC5-689F-406C-947C-06C5F321CA8C} = {8953473C-EEE8-4740-993D-B8E10FA876CD} + {D818035F-0345-49EF-9AB9-021583986CE2} = {8953473C-EEE8-4740-993D-B8E10FA876CD} EndGlobalSection EndGlobal
