Skip to content

Commit

Permalink
Add support for .NET Standard 2.0 (#102 closes #57)
Browse files Browse the repository at this point in the history
  • Loading branch information
luigiberrettini committed Dec 14, 2017
1 parent 1722e27 commit 9c675f6
Show file tree
Hide file tree
Showing 74 changed files with 1,249 additions and 3,985 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.

# Custom
tools/cake/

# User-specific files
*.suo
*.user
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -384,4 +384,4 @@ MSG = MSGANY or MSGUTF8
* `<34>1 2003-10-11T22:14:15.003Z mymachine.example.com su - ID47 - BOM'su root' failed for lonvick on /dev/pts/8`
* `<165>1 2003-08-24T05:14:15.000003-07:00 192.0.2.1 myproc 8710 - - %% It's time to make the do-nuts.`
* `<165>1 2003-10-11T22:14:15.003Z mymachine.example.com evntslog - ID47 [exampleSDID@32473 iut="3" eventSource="Application" eventID="1011"] BOMAn application event log entry...`
* `<165>1 2003-10-11T22:14:15.003Z mymachine.example.com evntslog - ID47 [exampleSDID@32473 iut="3" eventSource="Application" eventID="1011"][examplePriority@32473 class="high"]`
* `<165>1 2003-10-11T22:14:15.003Z mymachine.example.com evntslog - ID47 [exampleSDID@32473 iut="3" eventSource="Application" eventID="1011"][examplePriority@32473 class="high"]`
32 changes: 20 additions & 12 deletions appveyor.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,23 @@
configuration: Release
platform: Any CPU
version: BUILD {build}
image: Visual Studio 2017
before_build:
- cmd: nuget restore src/NLog.Targets.Syslog.sln -DisableParallelProcessing
- ps: Set-AppveyorBuildVariable -Name NGP_VER -Value (& "$env:APPVEYOR_BUILD_FOLDER\tools\get-version.ps1" -versionInfoFile "$env:APPVEYOR_BUILD_FOLDER\src\NLog.Targets.Syslog\Properties\AssemblyInfo.cs")
- ps: Update-AppveyorBuild -Version "$env:NGP_VER.$env:APPVEYOR_BUILD_NUMBER"
- ps: (Get-Content "$env:APPVEYOR_BUILD_FOLDER\src\NLog.Targets.Syslog\Properties\AssemblyInfo.cs") -replace '(AssemblyFileVersion\(\")([\.0-9]+)(\"\)])',"`${1}$env:APPVEYOR_BUILD_VERSION`${3}" | Set-Content "$env:APPVEYOR_BUILD_FOLDER\src\NLog.Targets.Syslog\Properties\AssemblyInfo.cs"
build:
project: src/NLog.Targets.Syslog.sln
verbosity: minimal
- ps: |
$mostRecentTag = git describe --abbrev=0 --tags
$mostRecentVersion = $mostRecentTag.Substring(1)
$currentCommitHash = git rev-parse --short HEAD
Set-AppveyorBuildVariable -Name SW_VER -Value $mostRecentVersion
Update-AppveyorBuild -Version "Build $env:APPVEYOR_BUILD_NUMBER - Commit $currentCommitHash - Tag v$env:SW_VER"
build_script:
- ps: |
$additionalArgs = if ($env:APPVEYOR_REPO_TAG -ne 'true') { "-buildNumber=$env:APPVEYOR_BUILD_NUMBER" }
.\tools\build.ps1 '-target=Pack' "-softwareVersion=$env:SW_VER" $additionalArgs
after_build:
- cmd: nuget pack src/NLog.Targets.Syslog/NLog.Targets.Syslog.csproj -Prop Configuration=Release -Prop Platform=AnyCPU
- cmd: nuget pack src/NLog.Targets.Syslog/NLog.Targets.Syslog.Schema.nuspec -Prop version=%NGP_VER%
artifacts:
- path: NLog.Targets.Syslog*.nupkg
- path: tools\artifacts\*.nupkg
deploy:
provider: NuGet
api_key:
secure: GcyRYCPxp53YxLHBjdeBRQeGimm4CJDDMnZFNQ1gb03PDAsR6Mp7PMWKzc7vjPKP
skip_symbols: false
on:
appveyor_repo_tag: true
22 changes: 22 additions & 0 deletions src/FakeSyslogServer/FakeSyslogServer.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net45;netstandard2.0</TargetFrameworks>
<RootNamespace>FakeSyslogServer</RootNamespace>
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
<OutputType>Library</OutputType>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>

<Product>FakeSyslogServer</Product>
<Copyright>Copyright © 2013 - present by Jesper Hess Nielsen, Luigi Berrettini and others: https://github.com/graffen/NLog.Targets.Syslog/graphs/contributors</Copyright>
<AssemblyTitle>Fake Syslog target</AssemblyTitle>
<AssemblyName>FakeSyslogServer</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<FileVersion>0.1.0.0</FileVersion>
<InformationalVersion>0.1.0-alpha-01-commitHash</InformationalVersion>
<NeutralLanguage>en</NeutralLanguage>
</PropertyGroup>

<ItemGroup>
<ProjectReference Include="..\NLog.Targets.Syslog\NLog.Targets.Syslog.csproj" />
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
using System.Text.RegularExpressions;
using NLog.Targets.Syslog.Settings;

namespace TestApp
namespace FakeSyslogServer
{
internal class ServerMsgSet
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
using System.Net;
using System.Net.Sockets;

namespace TestApp
namespace FakeSyslogServer
{
internal abstract class ServerSocket : IDisposable
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
using System.Net.Sockets;
using System.Text;

namespace TestApp
namespace FakeSyslogServer
{
internal abstract class StateObject
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@

using System;
using System.Net;
using System.Net.Sockets;
using System.Threading.Tasks;
using NLog.Targets.Syslog.Settings;

namespace TestApp
namespace FakeSyslogServer
{
internal class SyslogServer
public class SyslogServer
{
private readonly IPEndPoint udpEndPoint;
private readonly IPEndPoint tcpEndPoint;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
using System.Net.Sockets;
using System.Threading;

namespace TestApp
namespace FakeSyslogServer
{
internal class TcpServer: ServerSocket
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
using System.Net.Sockets;
using NLog.Targets.Syslog.Settings;

namespace TestApp
namespace FakeSyslogServer
{
internal class TcpState : StateObject
{
Expand Down
216 changes: 216 additions & 0 deletions src/FakeSyslogServer/TestAppHelper.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,216 @@
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using NLog;
using NLog.Common;

namespace FakeSyslogServer
{
public class TestAppHelper
{
private static readonly Logger Logger;
private static readonly string HugeMessage;

private readonly Func<string, string> settings;
private readonly Action<bool, SyslogServer> toggleSyslogServer;
private readonly SyslogServer syslogServer;

static TestAppHelper()
{
var sb = new StringBuilder(65000);
for (var i = 10; i <= 64000; i += 10)
sb.Append(i.ToString("D10"));
HugeMessage = sb.ToString();

//InternalLogger.LogLevel = LogLevel.Warn;
//InternalLogger.LogToTrace = true;

Logger = LogManager.GetCurrentClassLogger();
}

public TestAppHelper(Func<string, string> settingProvider, Action<bool, SyslogServer> toggleSyslogServerFunc)
{
TaskScheduler.UnobservedTaskException += HandleUnobservedTaskException;
settings = settingProvider;
toggleSyslogServer = toggleSyslogServerFunc;
var tcpEndPoint = EndPoint("tcpIp", "tcpPort");
var udpEndPoint = EndPoint("udpIp", "udpPort");
syslogServer = new SyslogServer(udpEndPoint, tcpEndPoint);
}

public void Dispose()
{
syslogServer.Dispose();
}

private static void HandleUnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs e)
{
e.SetObserved();
foreach (var innerException in e.Exception.Flatten().InnerExceptions)
{
Trace.WriteLine("******************** DANGEROUSLY UNOBSERVED TASK EXCEPTION!!!");
Trace.WriteLine(innerException);
}
}

private IPEndPoint EndPoint(string ipKey, string portKey)
{
var ip = IPAddress.Parse(settings(ipKey));
var port = int.Parse(settings(portKey));
return new IPEndPoint(ip, port);
}

public void PerformSelectedOperation(string operation)
{
switch (operation)
{
case "Trace":
{
Logger.Trace("This is a sample trace message");
break;
}
case "Debug":
{
Logger.Debug("This is a sample debug message");
break;
}
case "Info":
{
Logger.Info("This is a sample info message");
break;
}
case "Warn":
{
Logger.Warn("This is a sample warn message");
break;
}
case "Error":
{
Logger.Error("This is a sample error message");
break;
}
case "Fatal":
{
Logger.Fatal("This is a sample fatal message");
break;
}
case "FromFile":
{
FromFile();
break;
}
case "Huge":
{
Huge();
break;
}
case "Multiple":
{
Multiple();
break;
}
case "Continuous":
{
Continuous();
break;
}
case "Parallel":
{
Parallel();
break;
}
case "StartSyslogServer":
{
StartSyslogServer();
break;
}
case "StopSyslogServer":
{
StopSyslogServer();
break;
}
default:
{
throw new InvalidOperationException($"Operation '{operation}' is not supported");
}
}
}

private void FromFile()
{
var messagesFromFileLogLevel = settings("MessagesFromFileLogLevel");
var messagesFromFileFilePath = settings("MessagesFromFileFilePath");
var logLevel = messagesFromFileLogLevel == null ? LogLevel.Trace : LogLevel.FromString(messagesFromFileLogLevel);
InternalLogger.Debug($"From file log level: {logLevel.Name}");

var fileNotFound = !File.Exists(messagesFromFileFilePath);
if (fileNotFound)
{
InternalLogger.Debug($"From file input file '{messagesFromFileFilePath}' does not exist");
return;
}

var messages = File.ReadAllLines(messagesFromFileFilePath).ToList();
messages.ForEach(m => Logger.Log(logLevel, m));
}

private static void Huge()
{
Task.Factory.StartNew(() =>
{
for (var i = 0; i < 101202; i++)
{
Logger.Warn(HugeMessage);
Thread.Sleep(10);
}
});
}

private static void Multiple()
{
const string paddedNumber = "D6";
System.Threading.Tasks.Parallel.For(1, 101, i => Logger.Log(LogLevel.Trace, i.ToString(paddedNumber)));
System.Threading.Tasks.Parallel.For(101, 201, i => Logger.Log(LogLevel.Debug, i.ToString(paddedNumber)));
System.Threading.Tasks.Parallel.For(201, 301, i => Logger.Log(LogLevel.Info, i.ToString(paddedNumber)));
System.Threading.Tasks.Parallel.For(301, 401, i => Logger.Log(LogLevel.Warn, i.ToString(paddedNumber)));
System.Threading.Tasks.Parallel.For(401, 501, i => Logger.Log(LogLevel.Error, i.ToString(paddedNumber)));
System.Threading.Tasks.Parallel.For(501, 601, i => Logger.Log(LogLevel.Fatal, i.ToString(paddedNumber)));
}

private static void Continuous()
{
Task.Factory.StartNew(() =>
{
for (var i = 0; i < 101202; i++)
{
Logger.Warn(i);
Thread.Sleep(10);
}
});
}

private static void Parallel()
{
Task.Factory.StartNew(() =>
{
var parallelOptions = new ParallelOptions { MaxDegreeOfParallelism = Environment.ProcessorCount };
System.Threading.Tasks.Parallel.For(1, 404505, parallelOptions, i => Logger.Warn(i));
});
}

private void StartSyslogServer()
{
toggleSyslogServer(true, syslogServer);
}

private void StopSyslogServer()
{
toggleSyslogServer(false, syslogServer);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
using System.Net.Sockets;
using System.Threading;

namespace TestApp
namespace FakeSyslogServer
{
internal class UdpServer: ServerSocket
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
using System.IO;
using System.Net.Sockets;

namespace TestApp
namespace FakeSyslogServer
{
internal class UdpState : StateObject
{
Expand Down
Loading

0 comments on commit 9c675f6

Please sign in to comment.