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