Skip to content

Commit 26b2c7b

Browse files
authored
Merge pull request #94 from merbla/tooling-updates
Build/tooling updates
2 parents 99fa29d + 0097364 commit 26b2c7b

File tree

12 files changed

+135
-16
lines changed

12 files changed

+135
-16
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,3 +196,6 @@ FakesAssemblies/
196196
*.opt
197197

198198
project.lock.json
199+
200+
#Test files
201+
*.txt

.travis.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
language: csharp
2+
3+
matrix:
4+
include:
5+
- os: linux
6+
dist: trusty
7+
sudo: required
8+
dotnet: 2.1.4
9+
group: edge
10+
script:
11+
- ./build.sh

appveyor.yml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,6 @@ version: '{build}'
22
skip_tags: true
33
image: Visual Studio 2017
44
configuration: Release
5-
install:
6-
- ps: mkdir -Force ".\build\" | Out-Null
7-
- ps: Invoke-WebRequest "https://raw.githubusercontent.com/dotnet/cli/rel/1.0.0/scripts/obtain/dotnet-install.ps1" -OutFile ".\build\installcli.ps1"
8-
- ps: $env:DOTNET_INSTALL_DIR = "$pwd\.dotnetcli"
9-
- ps: '& .\build\installcli.ps1 -InstallDir "$env:DOTNET_INSTALL_DIR" -NoPath -Version 1.0.1'
10-
- ps: $env:Path = "$env:DOTNET_INSTALL_DIR;$env:Path"
115
build_script:
126
- ps: ./Build.ps1
137
test: off

build.sh

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/bin/bash
2+
3+
set -e
4+
dotnet --info
5+
dotnet restore
6+
7+
for path in src/**/*.csproj; do
8+
dotnet build -f netstandard1.6 -c Release ${path}
9+
done
10+
11+
for path in test/*.Tests/*.csproj; do
12+
dotnet test -f netcoreapp2.0 -c Release ${path}
13+
done
14+
15+
cd sample/Sample/
16+
dotnet build -f netcoreapp2.0 -c Release
17+
dotnet bin/Release/netcoreapp2.0/Sample.dll --run-once

sample/Sample/Program.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
using Microsoft.Extensions.Configuration;
44
using Serilog;
55
using System.IO;
6-
6+
using System.Linq;
77
using Serilog.Core;
88
using Serilog.Events;
99

@@ -22,6 +22,8 @@ public static void Main(string[] args)
2222
.ReadFrom.Configuration(configuration)
2323
.CreateLogger();
2424

25+
logger.Information("Args: {a}", args);
26+
2527
do
2628
{
2729
logger.ForContext<Program>().Information("Hello, world!");
@@ -32,7 +34,7 @@ public static void Main(string[] args)
3234

3335
Console.WriteLine();
3436
}
35-
while (Console.ReadKey().KeyChar != 'q');
37+
while (!args.Contains("--run-once") && (Console.ReadKey().KeyChar != 'q'));
3638
}
3739
}
3840

sample/Sample/Sample.csproj

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net46;netcoreapp1.0</TargetFrameworks>
4+
<TargetFrameworks>net46;netcoreapp2.0</TargetFrameworks>
55
<OutputType>Exe</OutputType>
66
</PropertyGroup>
77

@@ -23,4 +23,10 @@
2323
<PackageReference Include="Serilog.Filters.Expressions" Version="1.0.0" />
2424
</ItemGroup>
2525

26+
<ItemGroup>
27+
<None Update="appsettings.json">
28+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
29+
</None>
30+
</ItemGroup>
31+
2632
</Project>

sample/Sample/appsettings.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"Name": "Console",
1818
"Args": {
1919
"outputTemplate": "[{Timestamp:HH:mm:ss} {SourceContext} [{Level}] {Message}{NewLine}{Exception}",
20-
"theme": "Serilog.Sinks.SystemConsole.Themes.AnsiConsoleTheme::Code, Serilog.Sinks.Console"
20+
"theme": "Serilog.Sinks.SystemConsole.Themes.SystemConsoleTheme::Grayscale, Serilog.Sinks.Console"
2121
}
2222
}
2323
]
@@ -58,4 +58,4 @@
5858
}
5959
]
6060
}
61-
}
61+
}

src/Serilog.Settings.Configuration/Settings/Configuration/ConfigurationReader.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,7 @@ internal static IList<MethodInfo> FindSinkConfigurationMethods(IReadOnlyCollecti
329329
{
330330
var found = FindConfigurationMethods(configurationAssemblies, typeof(LoggerSinkConfiguration));
331331
if (configurationAssemblies.Contains(typeof(LoggerSinkConfiguration).GetTypeInfo().Assembly))
332-
found.Add(GetSurrogateConfigurationMethod<LoggerSinkConfiguration, Action<LoggerConfiguration>, LoggingLevelSwitch>((c, a, s) => Logger(c, a, s)));
332+
found.Add(GetSurrogateConfigurationMethod<LoggerSinkConfiguration, Action<LoggerConfiguration>, LoggingLevelSwitch>((c, a, s) => Logger(c, a, LevelAlias.Minimum, s)));
333333

334334
return found;
335335
}
@@ -380,8 +380,12 @@ internal static LoggerConfiguration FromLogContext(LoggerEnrichmentConfiguration
380380
=> loggerEnrichmentConfiguration.FromLogContext();
381381

382382
// Unlike the other configuration methods, Logger is an instance method rather than an extension.
383-
internal static LoggerConfiguration Logger(LoggerSinkConfiguration loggerSinkConfiguration, Action<LoggerConfiguration> configureLogger, LoggingLevelSwitch restrictedToMinimumLevel = null)
384-
=> loggerSinkConfiguration.Logger(configureLogger, levelSwitch: restrictedToMinimumLevel);
383+
internal static LoggerConfiguration Logger(
384+
LoggerSinkConfiguration loggerSinkConfiguration,
385+
Action<LoggerConfiguration> configureLogger,
386+
LogEventLevel restrictedToMinimumLevel = LevelAlias.Minimum,
387+
LoggingLevelSwitch levelSwitch = null)
388+
=> loggerSinkConfiguration.Logger(configureLogger, restrictedToMinimumLevel, levelSwitch);
385389

386390
internal static MethodInfo GetSurrogateConfigurationMethod<TConfiguration, TArg1, TArg2>(Expression<Action<TConfiguration, TArg1, TArg2>> method)
387391
=> (method.Body as MethodCallExpression)?.Method;
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
using System.Text.RegularExpressions;
2+
3+
namespace Serilog.Settings.Configuration
4+
{
5+
static class ConfigurationValueSyntax
6+
{
7+
const string LevelSwitchNameRegex = @"^\$[A-Za-z]+[A-Za-z0-9]*$";
8+
9+
public static bool IsValidSwitchName(string input)
10+
{
11+
return Regex.IsMatch(input, LevelSwitchNameRegex);
12+
}
13+
}
14+
}

test/Serilog.Settings.Configuration.Tests/ConfigurationSettingsTests.cs

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -390,5 +390,73 @@ public void LoggingLevelSwitchCanBeUsedForMinimumLevelOverrides()
390390
Assert.False(evt is null, "LoggingLevelSwitch level was changed to Information for logger System.*. It should now log Information events for SourceContext System.Bar.");
391391
// ReSharper restore HeuristicUnreachableCode
392392
}
393+
394+
395+
[Trait("Bugfix", "#91")]
396+
[Fact]
397+
public void WriteToLoggerWithRestrictedToMinimumLevelIsSupported()
398+
{
399+
var json = @"{
400+
""Serilog"": {
401+
""Using"": [""TestDummies""],
402+
""WriteTo"": [{
403+
""Name"": ""Logger"",
404+
""Args"": {
405+
""configureLogger"" : {
406+
""WriteTo"": [{
407+
""Name"": ""DummyRollingFile"",
408+
""Args"": {""pathFormat"" : ""C:\\""}
409+
}]},
410+
""restrictedToMinimumLevel"": ""Warning""
411+
}
412+
}]
413+
}
414+
}";
415+
416+
var log = ConfigFromJson(json)
417+
.CreateLogger();
418+
419+
DummyRollingFileSink.Emitted.Clear();
420+
421+
log.Write(Some.InformationEvent());
422+
log.Write(Some.WarningEvent());
423+
424+
Assert.Equal(1, DummyRollingFileSink.Emitted.Count);
425+
}
426+
427+
[Trait("Bugfix", "#91")]
428+
[Fact]
429+
public void WriteToSubLoggerWithLevelSwitchIsSupported()
430+
{
431+
var json = @"{
432+
""Serilog"": {
433+
""Using"": [""TestDummies""],
434+
""LevelSwitches"": {""$switch1"" : ""Warning"" },
435+
""MinimumLevel"" : {
436+
""ControlledBy"" : ""$switch1""
437+
},
438+
""WriteTo"": [{
439+
""Name"": ""Logger"",
440+
""Args"": {
441+
""configureLogger"" : {
442+
""WriteTo"": [{
443+
""Name"": ""DummyRollingFile"",
444+
""Args"": {""pathFormat"" : ""C:\\""}
445+
}]}
446+
}
447+
}]
448+
}
449+
}";
450+
451+
var log = ConfigFromJson(json)
452+
.CreateLogger();
453+
454+
DummyRollingFileSink.Emitted.Clear();
455+
456+
log.Write(Some.InformationEvent());
457+
log.Write(Some.WarningEvent());
458+
459+
Assert.Equal(1, DummyRollingFileSink.Emitted.Count);
460+
}
393461
}
394462
}

test/Serilog.Settings.Configuration.Tests/Serilog.Settings.Configuration.Tests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net452;netcoreapp1.0</TargetFrameworks>
4+
<TargetFrameworks>net452;netcoreapp2.0</TargetFrameworks>
55
<AssemblyName>Serilog.Settings.Configuration.Tests</AssemblyName>
66
<AssemblyOriginatorKeyFile>../../assets/Serilog.snk</AssemblyOriginatorKeyFile>
77
<SignAssembly>true</SignAssembly>

test/TestDummies/TestDummies.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net452;netstandard1.3</TargetFrameworks>
4+
<TargetFrameworks>net452;netstandard2.0</TargetFrameworks>
55
<AssemblyName>TestDummies</AssemblyName>
66
<AssemblyOriginatorKeyFile>../../assets/Serilog.snk</AssemblyOriginatorKeyFile>
77
<SignAssembly>true</SignAssembly>

0 commit comments

Comments
 (0)