diff --git a/test/TestApp-net9.0/.gitignore b/test/TestApp-net9.0/.gitignore new file mode 100644 index 0000000..1cc29f1 --- /dev/null +++ b/test/TestApp-net9.0/.gitignore @@ -0,0 +1,2 @@ +FodyWeavers.xml +FodyWeavers.xsd diff --git a/test/TestApp-net9.0/Program.cs b/test/TestApp-net9.0/Program.cs new file mode 100644 index 0000000..033b43d --- /dev/null +++ b/test/TestApp-net9.0/Program.cs @@ -0,0 +1,70 @@ +using System.Reflection; +using Microsoft.Extensions.Configuration; +using Serilog; +using Serilog.Debugging; +using Serilog.Settings.Configuration; + +if (args.Length == 1 && args[0] == "is-single-file") +{ + if (typeof(Program).Assembly.GetManifestResourceNames().Any(e => e.StartsWith("costura."))) + { + Console.WriteLine(true); + return 0; + } + // IL3000: 'System.Reflection.Assembly.Location' always returns an empty string for assemblies embedded in a single-file app +#pragma warning disable IL3000 + Console.WriteLine(string.IsNullOrEmpty(Assembly.GetEntryAssembly()?.Location)); +#pragma warning restore + return 0; +} + +SelfLog.Enable(Console.Error); + +Thread.CurrentThread.Name = "Main thread"; +const string outputTemplate = "({ThreadName}) [{Level}] {Message}{NewLine}"; + +var configurationValues = new Dictionary(); +var minimumLevelOnly = args.Contains("--minimum-level-only"); +if (minimumLevelOnly) +{ + configurationValues["Serilog:MinimumLevel"] = "Verbose"; +} +else +{ + configurationValues["Serilog:Enrich:0"] = "WithThreadName"; + configurationValues["Serilog:WriteTo:0:Name"] = "Console"; + configurationValues["Serilog:WriteTo:0:Args:outputTemplate"] = outputTemplate; +} + +if (args.Contains("--using-thread")) configurationValues["Serilog:Using:Thread"] = "Serilog.Enrichers.Thread"; +if (args.Contains("--using-console")) configurationValues["Serilog:Using:Console"] = "Serilog.Sinks.Console"; + +var assemblies = new List(); +if (args.Contains("--assembly-thread")) assemblies.Add(typeof(ThreadLoggerConfigurationExtensions).Assembly); +if (args.Contains("--assembly-console")) assemblies.Add(typeof(ConsoleLoggerConfigurationExtensions).Assembly); + +try +{ + var configuration = new ConfigurationBuilder().AddInMemoryCollection(configurationValues).Build(); + var options = assemblies.Count > 0 ? new ConfigurationReaderOptions(assemblies.ToArray()) : null; + var loggerConfiguration = new LoggerConfiguration().ReadFrom.Configuration(configuration, options); + if (minimumLevelOnly) + { + loggerConfiguration + .Enrich.WithThreadName() + .WriteTo.Console(outputTemplate: outputTemplate); + } + var logger = loggerConfiguration.CreateLogger(); + logger.Information("Expected success"); + return 0; +} +catch (InvalidOperationException exception) when (exception.Message.StartsWith("No Serilog:Using configuration section is defined and no Serilog assemblies were found.")) +{ + Console.WriteLine("Expected exception"); + return 0; +} +catch (Exception exception) +{ + Console.Error.WriteLine(exception); + return 1; +} diff --git a/test/TestApp-net9.0/Serilog.Settings.Configuration.0.0.0-IntegrationTest.0.snupkg b/test/TestApp-net9.0/Serilog.Settings.Configuration.0.0.0-IntegrationTest.0.snupkg new file mode 100644 index 0000000..bf7bdf1 Binary files /dev/null and b/test/TestApp-net9.0/Serilog.Settings.Configuration.0.0.0-IntegrationTest.0.snupkg differ diff --git a/test/TestApp-net9.0/TestApp.csproj b/test/TestApp-net9.0/TestApp.csproj new file mode 100644 index 0000000..585e706 --- /dev/null +++ b/test/TestApp-net9.0/TestApp.csproj @@ -0,0 +1,33 @@ + + + + Exe + net48 + embedded + false + false + false + none + true + true + false + + NU1902;NU1903 + + + + + + + + + + + + + + + + + + diff --git a/test/TestApp-net9.0/nuget.config b/test/TestApp-net9.0/nuget.config new file mode 100644 index 0000000..cfec8fc --- /dev/null +++ b/test/TestApp-net9.0/nuget.config @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/test/TestApp/TestApp.csproj b/test/TestApp/TestApp.csproj index 05e2119..585e706 100644 --- a/test/TestApp/TestApp.csproj +++ b/test/TestApp/TestApp.csproj @@ -11,6 +11,8 @@ true true false + + NU1902;NU1903 @@ -26,9 +28,6 @@ - - -