You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by da...@apache.org on 2022/07/22 13:23:49 UTC

[logging-log4net] branch master updated: :alembic: try to repro LOG4NET-673 (unsuccessfully)

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


The following commit(s) were added to refs/heads/master by this push:
     new 87c4950c :alembic: try to repro LOG4NET-673 (unsuccessfully)
87c4950c is described below

commit 87c4950c98eacb3bdee636e19edd68e5c620867a
Author: Davyd McColl <da...@gmail.com>
AuthorDate: Fri Jul 22 15:23:39 2022 +0200

    :alembic: try to repro LOG4NET-673 (unsuccessfully)
---
 src/integration-testing/log4net-673/Program.cs     | 77 ++++++++++++++++++++
 .../log4net-673/log4net-673.csproj                 | 19 +++++
 src/integration-testing/log4net-673/log4net.config | 81 ++++++++++++++++++++++
 src/log4net.sln                                    |  7 ++
 4 files changed, 184 insertions(+)

diff --git a/src/integration-testing/log4net-673/Program.cs b/src/integration-testing/log4net-673/Program.cs
new file mode 100644
index 00000000..fb910898
--- /dev/null
+++ b/src/integration-testing/log4net-673/Program.cs
@@ -0,0 +1,77 @@
+using System;
+using System.IO;
+using System.Reflection;
+using System.Threading;
+using log4net;
+using log4net.Config;
+
+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
+if (appFolder is null)
+{
+    throw new InvalidOperationException("Can't find myself");
+}
+
+var configFile = Path.Combine(appFolder, "log4net.config");
+if (!File.Exists(configFile))
+{
+    throw new InvalidOperationException($"log4net.config not found at {configFile}");
+}
+
+if (Directory.Exists("log"))
+{
+    Console.WriteLine("Clearing out old logs...");
+    foreach (var file in Directory.EnumerateFiles("log"))
+    {
+        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}");
+    logger.Error($"error log {i}");
+    logger.Warn($"warning log {i}");
+}
+
+
+foreach (var file in Directory.EnumerateFiles("log"))
+{
+    Console.WriteLine($"log file: {file}");
+    TryDumpFile(file);
+}
+
+void TryDumpFile(string at)
+{
+    if (!File.Exists(at))
+    {
+        Console.WriteLine($"File not found: {at}");
+        return;
+    }
+
+    for (var i = 0; i < 10; i++)
+    {
+        try
+        {
+            Console.WriteLine(File.ReadAllText(at));
+            return;
+        }
+        catch
+        {
+            Thread.Sleep(100);
+        }
+    }
+
+    Console.WriteLine($"Unable to read file at {at}");
+}
diff --git a/src/integration-testing/log4net-673/log4net-673.csproj b/src/integration-testing/log4net-673/log4net-673.csproj
new file mode 100644
index 00000000..a799926f
--- /dev/null
+++ b/src/integration-testing/log4net-673/log4net-673.csproj
@@ -0,0 +1,19 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>net6.0</TargetFramework>
+    <RootNamespace>log4net_673</RootNamespace>
+    <ImplicitUsings>disable</ImplicitUsings>
+    <Nullable>disable</Nullable>
+  </PropertyGroup>
+  <ItemGroup>
+    <PackageReference Include="log4net" Version="2.0.14" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Update="log4net.config">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </None>
+  </ItemGroup>
+
+</Project>
diff --git a/src/integration-testing/log4net-673/log4net.config b/src/integration-testing/log4net-673/log4net.config
new file mode 100644
index 00000000..05fd0e3e
--- /dev/null
+++ b/src/integration-testing/log4net-673/log4net.config
@@ -0,0 +1,81 @@
+<log4net>
+  <root>
+    <level value="ALL" />
+    <appender-ref ref="ColoredConsoleAppender" />
+    <appender-ref ref="RollingLogFileAppender" />
+    <appender-ref ref="ErrorLogFileAppender" />
+    <appender-ref ref="WarnLogFileAppender" />
+  </root>
+
+  <appender name="ColoredConsoleAppender" type="log4net.Appender.ManagedColoredConsoleAppender">
+    <mapping>
+      <level value="INFO" />
+      <forecolor value="White" />
+    </mapping>
+    <mapping>
+      <level value="WARN" />
+      <forecolor value="Green" />
+    </mapping>
+    <mapping>
+      <level value="ERROR" />
+      <forecolor value="Red" />
+    </mapping>
+    <mapping>
+      <level value="DEBUG" />
+      <forecolor value="Yellow" />
+    </mapping>
+    <layout type="log4net.Layout.PatternLayout">
+      <conversionpattern value="%date [%thread] %-5level - %message%newline" />
+    </layout>
+  </appender>
+
+  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
+    <file type="log4net.Util.PatternString" value="log/ALL-Datamigration.log" />
+    <appendToFile value="true" />
+    <rollingStyle value="Composite" />
+    <maxSizeRollBackups value="100" />
+    <maximumFileSize value="30MB" />
+    <staticLogFileName value="true" />
+    <preserveLogFileNameExtension value="true"/>
+    <datePattern value="ddMMyyyy" />
+    <layout type="log4net.Layout.PatternLayout">
+      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
+    </layout>
+  </appender>
+
+  <appender name="ErrorLogFileAppender" type="log4net.Appender.RollingFileAppender">
+    <file type="log4net.Util.PatternString" value="log/ERROR-Datamigration.log" />
+    <appendToFile value="true" />
+    <rollingStyle value="Composite" />
+    <maxSizeRollBackups value="100" />
+    <maximumFileSize value="30MB" />
+    <staticLogFileName value="true" />
+    <preserveLogFileNameExtension value="true"/>
+    <datePattern value="ddMMyyyy" />
+    <layout type="log4net.Layout.PatternLayout">
+      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
+    </layout>
+    <filter type="log4net.Filter.LevelRangeFilter">
+      <param name="LevelMin" value="ERROR"/>
+      <param name="LevelMax" value="FATAL"/>
+    </filter>
+  </appender>
+
+  <appender name="WarnLogFileAppender" type="log4net.Appender.RollingFileAppender">
+    <file type="log4net.Util.PatternString" value="log/WARN-Datamigration.log" />
+    <appendToFile value="true" />
+    <rollingStyle value="Composite" />
+    <maxSizeRollBackups value="100" />
+    <maximumFileSize value="30MB" />
+    <staticLogFileName value="true" />
+    <preserveLogFileNameExtension value="true"/>
+    <datePattern value="ddMMyyyy" />
+    <layout type="log4net.Layout.PatternLayout">
+      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
+    </layout>
+    <filter type="log4net.Filter.LevelRangeFilter">
+      <param name="LevelMin" value="WARN"/>
+      <param name="LevelMax" value="WARN"/>
+    </filter>
+  </appender>
+</log4net>
\ No newline at end of file
diff --git a/src/log4net.sln b/src/log4net.sln
index 44750e9c..4a51f83b 100644
--- a/src/log4net.sln
+++ b/src/log4net.sln
@@ -32,6 +32,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "log4net-611-main", "integra
 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
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "log4net-673", "integration-testing\log4net-673\log4net-673.csproj", "{169118A6-CAC3-4E83-ABEE-9E884B75B294}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -58,6 +60,10 @@ Global
 		{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
+		{169118A6-CAC3-4E83-ABEE-9E884B75B294}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{169118A6-CAC3-4E83-ABEE-9E884B75B294}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{169118A6-CAC3-4E83-ABEE-9E884B75B294}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{169118A6-CAC3-4E83-ABEE-9E884B75B294}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -66,5 +72,6 @@ Global
 		{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}
+		{169118A6-CAC3-4E83-ABEE-9E884B75B294} = {8953473C-EEE8-4740-993D-B8E10FA876CD}
 	EndGlobalSection
 EndGlobal