:white_check_mark: try to repro LOG4NET-611, but no go
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 0000000..a22b426
--- /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 0000000..07a87a1
--- /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 0000000..b0a7815
--- /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 0000000..e6e8da9
--- /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 0000000..08611e8
--- /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 eeaf125..44750e9 100644
--- a/src/log4net.sln
+++ b/src/log4net.sln
@@ -28,6 +28,10 @@
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 @@
{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