Skip to content

Commit 2ffe4f4

Browse files
committed
Try to get TestApp running happily in the new build configuration
1 parent 86fed08 commit 2ffe4f4

File tree

6 files changed

+123
-0
lines changed

6 files changed

+123
-0
lines changed

test/TestApp-net8.0/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
FodyWeavers.xml
2+
FodyWeavers.xsd

test/TestApp-net8.0/Program.cs

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
using System.Reflection;
2+
using Microsoft.Extensions.Configuration;
3+
using Serilog;
4+
using Serilog.Debugging;
5+
using Serilog.Settings.Configuration;
6+
7+
if (args.Length == 1 && args[0] == "is-single-file")
8+
{
9+
if (typeof(Program).Assembly.GetManifestResourceNames().Any(e => e.StartsWith("costura.")))
10+
{
11+
Console.WriteLine(true);
12+
return 0;
13+
}
14+
// IL3000: 'System.Reflection.Assembly.Location' always returns an empty string for assemblies embedded in a single-file app
15+
#pragma warning disable IL3000
16+
Console.WriteLine(string.IsNullOrEmpty(Assembly.GetEntryAssembly()?.Location));
17+
#pragma warning restore
18+
return 0;
19+
}
20+
21+
SelfLog.Enable(Console.Error);
22+
23+
Thread.CurrentThread.Name = "Main thread";
24+
const string outputTemplate = "({ThreadName}) [{Level}] {Message}{NewLine}";
25+
26+
var configurationValues = new Dictionary<string, string?>();
27+
var minimumLevelOnly = args.Contains("--minimum-level-only");
28+
if (minimumLevelOnly)
29+
{
30+
configurationValues["Serilog:MinimumLevel"] = "Verbose";
31+
}
32+
else
33+
{
34+
configurationValues["Serilog:Enrich:0"] = "WithThreadName";
35+
configurationValues["Serilog:WriteTo:0:Name"] = "Console";
36+
configurationValues["Serilog:WriteTo:0:Args:outputTemplate"] = outputTemplate;
37+
}
38+
39+
if (args.Contains("--using-thread")) configurationValues["Serilog:Using:Thread"] = "Serilog.Enrichers.Thread";
40+
if (args.Contains("--using-console")) configurationValues["Serilog:Using:Console"] = "Serilog.Sinks.Console";
41+
42+
var assemblies = new List<Assembly>();
43+
if (args.Contains("--assembly-thread")) assemblies.Add(typeof(ThreadLoggerConfigurationExtensions).Assembly);
44+
if (args.Contains("--assembly-console")) assemblies.Add(typeof(ConsoleLoggerConfigurationExtensions).Assembly);
45+
46+
try
47+
{
48+
var configuration = new ConfigurationBuilder().AddInMemoryCollection(configurationValues).Build();
49+
var options = assemblies.Count > 0 ? new ConfigurationReaderOptions(assemblies.ToArray()) : null;
50+
var loggerConfiguration = new LoggerConfiguration().ReadFrom.Configuration(configuration, options);
51+
if (minimumLevelOnly)
52+
{
53+
loggerConfiguration
54+
.Enrich.WithThreadName()
55+
.WriteTo.Console(outputTemplate: outputTemplate);
56+
}
57+
var logger = loggerConfiguration.CreateLogger();
58+
logger.Information("Expected success");
59+
return 0;
60+
}
61+
catch (InvalidOperationException exception) when (exception.Message.StartsWith("No Serilog:Using configuration section is defined and no Serilog assemblies were found."))
62+
{
63+
Console.WriteLine("Expected exception");
64+
return 0;
65+
}
66+
catch (Exception exception)
67+
{
68+
Console.Error.WriteLine(exception);
69+
return 1;
70+
}
Binary file not shown.

test/TestApp-net8.0/TestApp.csproj

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<OutputType>Exe</OutputType>
5+
<TargetFramework>net48</TargetFramework>
6+
<DebugType>embedded</DebugType>
7+
<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
8+
<GenerateSupportedRuntime>false</GenerateSupportedRuntime>
9+
<PublishReferencesDocumentationFiles>false</PublishReferencesDocumentationFiles>
10+
<AllowedReferenceRelatedFileExtensions>none</AllowedReferenceRelatedFileExtensions>
11+
<UseCurrentRuntimeIdentifier>true</UseCurrentRuntimeIdentifier>
12+
<SelfContained>true</SelfContained>
13+
<GenerateDocumentationFile>false</GenerateDocumentationFile>
14+
</PropertyGroup>
15+
16+
<ItemGroup Condition="$(Configuration) == 'Debug'">
17+
<ProjectReference Include="..\..\src\Serilog.Settings.Configuration\Serilog.Settings.Configuration.csproj" />
18+
</ItemGroup>
19+
20+
<ItemGroup Condition="$(Configuration) == 'Release'">
21+
<PackageReference Include="Serilog.Settings.Configuration" Version="[0.0.0-IntegrationTest.0]" />
22+
</ItemGroup>
23+
24+
<ItemGroup>
25+
<PackageReference Include="Costura.Fody" Version="5.7.0" PrivateAssets="all" />
26+
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.0" />
27+
<PackageReference Include="Serilog.Enrichers.Thread" Version="4.0.0" />
28+
<PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
29+
</ItemGroup>
30+
31+
<ItemGroup Condition=" '$(TargetFramework)' != 'net48' ">
32+
<PackageReference Include="System.Net.Http" Version="4.3.4" />
33+
<PackageReference Include="System.Private.Uri" Version="4.3.2" />
34+
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
35+
</ItemGroup>
36+
37+
</Project>

test/TestApp-net8.0/nuget.config

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<configuration>
3+
<config>
4+
<add key="globalPackagesFolder" value="packages" />
5+
</config>
6+
<packageSources>
7+
<clear />
8+
<add key="local" value="." />
9+
<add key="nuget" value="https://api.nuget.org/v3/index.json" />
10+
</packageSources>
11+
</configuration>

test/TestApp/TestApp.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@
2626
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.0" />
2727
<PackageReference Include="Serilog.Enrichers.Thread" Version="4.0.0" />
2828
<PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
29+
</ItemGroup>
30+
31+
<ItemGroup Condition=" '$(TargetFramework)' != 'net48' ">
2932
<PackageReference Include="System.Net.Http" Version="4.3.4" />
3033
<PackageReference Include="System.Private.Uri" Version="4.3.2" />
3134
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />

0 commit comments

Comments
 (0)