diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml
index f00aa48..f92299d 100644
--- a/.github/workflows/dotnet.yml
+++ b/.github/workflows/dotnet.yml
@@ -67,29 +67,30 @@ jobs:
needs: build-and-test-release
runs-on: windows-latest
steps:
- - name: Set up JDK 11
- uses: actions/setup-java@v1
+ - name: Set up JDK 17
+ uses: actions/setup-java@v3
with:
- java-version: 1.11
+ java-version: 17
+ distribution: 'zulu' # Alternative distribution options are available.
- uses: actions/checkout@v3
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Cache SonarCloud packages
- uses: actions/cache@v1
+ uses: actions/cache@v3
with:
path: ~\sonar\cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
- name: Cache SonarCloud scanner
id: cache-sonar-scanner
- uses: actions/cache@v1
+ uses: actions/cache@v3
with:
path: .\.sonar\scanner
key: ${{ runner.os }}-sonar-scanner
restore-keys: ${{ runner.os }}-sonar-scanner
- name: Cache dotnet-coverage
id: cache-dotnet-coverage
- uses: actions/cache@v1
+ uses: actions/cache@v3
with:
path: .\.dotnet-coverage\dotnet-coverage
key: ${{ runner.os }}-dotnet-coverage
diff --git a/README.md b/README.md
index c7702f1..1dfdd19 100644
--- a/README.md
+++ b/README.md
@@ -4,31 +4,36 @@ A basic Slack Sink for the Serilog framework.
## Status
-| | |
-|----------------------:|-----------------------|
-| Build & Test Status (main) | [](https://github.com/jjm-one/jjm.one.Serilog.Sinks.SlackWebHook/actions/workflows/dotnet.yml) |
-| Nuget Package Version | [](https://www.nuget.org/packages/jjm.one.Serilog.Sinks.SlackWebHook/) |
+| | |
+|------------------------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Build & Test Status (main) | [](https://github.com/jjm-one/jjm.one.Serilog.Sinks.SlackWebHook/actions/workflows/dotnet.yml) |
+| Nuget Package Version | [](https://www.nuget.org/packages/jjm.one.Serilog.Sinks.SlackWebHook/) |
| SonarCloudQuality Gate Status | [](https://sonarcloud.io/summary/new_code?id=jjm-one_jjm.one.Serilog.Sinks.SlackWebHook) |
## Description
-This tool provides a Serilog Sink which sends log messages to one or more channels in a Slack workspace. To send this messages this tool is using the [Slack.Webhooks](https://github.com/mrb0nj/Slack.Webhooks) project to handle the communication with Slack. Therefor you need a valid WebHook URL to use this Sink. To get such a WebHook URL please read this [article](https://slack.com/help/articles/115005265063-Incoming-Webhooks-for-Slack). The log messages will be send in batches to the slack servers. You can setup the batch size to fit your needs.
+This tool provides a Serilog Sink which sends log messages to one or more channels in a Slack workspace. To send this
+messages this tool is using the [Slack.Webhooks](https://github.com/mrb0nj/Slack.Webhooks) project to handle the
+communication with Slack. Therefor you need a valid WebHook URL to use this Sink. To get such a WebHook URL please read
+this [article](https://slack.com/help/articles/115005265063-Incoming-Webhooks-for-Slack). The log messages will be send
+in batches to the slack servers. You can setup the batch size to fit your needs.
## Nuget Package
-You can get the latest version of this software as a nuget package form [nuget.org](https://www.nuget.org/packages/jjm.one.Serilog.Sinks.SlackWebHook/)
+You can get the latest version of this software as a nuget package
+form [nuget.org](https://www.nuget.org/packages/jjm.one.Serilog.Sinks.SlackWebHook/)
### Installing the Nuget Package
-| Tool | Command/Code |
-|----------------------|--------------|
-| Package Manager | ```PM> Install-Package jjm.one.Serilog.Sinks.SlackWebHook -Version X.Y.Z``` |
-| .NET CLI | ```> dotnet add package jjm.one.Serilog.Sinks.SlackWebHook --version X.Y.Z``` |
+| Tool | Command/Code |
+|----------------------|-----------------------------------------------------------------------------------------|
+| Package Manager | ```PM> Install-Package jjm.one.Serilog.Sinks.SlackWebHook -Version X.Y.Z``` |
+| .NET CLI | ```> dotnet add package jjm.one.Serilog.Sinks.SlackWebHook --version X.Y.Z``` |
| PackageReference | `````` |
-| Package CLI | ```> paket add jjm.one.Serilog.Sinks.SlackWebHook --version X.Y.Z``` |
-| Script & Interactive | ```> #r "nuget: jjm.one.Serilog.Sinks.SlackWebHook, X.Y.Z"``` |
-| Cake as Addin | ```#addin nuget:?package=jjm.one.Serilog.Sinks.SlackWebHook&version=X.Y.Z``` |
-| Cake as Tool | ```#tool nuget:?package=jjm.one.Serilog.Sinks.SlackWebHook&version=X.Y.Z``` |
+| Package CLI | ```> paket add jjm.one.Serilog.Sinks.SlackWebHook --version X.Y.Z``` |
+| Script & Interactive | ```> #r "nuget: jjm.one.Serilog.Sinks.SlackWebHook, X.Y.Z"``` |
+| Cake as Addin | ```#addin nuget:?package=jjm.one.Serilog.Sinks.SlackWebHook&version=X.Y.Z``` |
+| Cake as Tool | ```#tool nuget:?package=jjm.one.Serilog.Sinks.SlackWebHook&version=X.Y.Z``` |
## Dependencies
@@ -120,7 +125,8 @@ Log.Logger = new LoggerConfiguration()
## Full Documentation
-The full documentation for this package can be found [here](https://jjm-one.github.io/jjm.one.Serilog.Sinks.SlackWebHook/main/doc/html/index.html).
+The full documentation for this package can be
+found [here](https://jjm-one.github.io/jjm.one.Serilog.Sinks.SlackWebHook/main/doc/html/index.html).
## Repo
diff --git a/src/jjm.one.Serilog.Sinks.SlackWebHook.Example/SlackSinkExample.cs b/src/jjm.one.Serilog.Sinks.SlackWebHook.Example/SlackSinkExample.cs
index 908e0ec..a07709a 100644
--- a/src/jjm.one.Serilog.Sinks.SlackWebHook.Example/SlackSinkExample.cs
+++ b/src/jjm.one.Serilog.Sinks.SlackWebHook.Example/SlackSinkExample.cs
@@ -1,88 +1,97 @@
-using Serilog;
+using System;
+using System.Threading;
+using Serilog;
using Serilog.Core;
using Serilog.Events;
-using System;
-namespace jjm.one.Serilog.Sinks.SlackWebHook.Example
+namespace jjm.one.Serilog.Sinks.SlackWebHook.Example;
+
+///
+/// This class contains examples on how to use the library.
+///
+public static class SlackSinkExample
{
- public static class SlackSinkExample
+ ///
+ /// The main function of the class.
+ ///
+ ///
+ ///
+ public static void Main()
{
- public static void Main()
+ string? slackChannel = null;
+
+ Console.WriteLine(
+ "####################################################################################################");
+ Console.WriteLine("Serilog Slack Sink Example (ver. " + typeof(SlackSinkExample).Assembly.GetName().Version +
+ ")");
+ Console.WriteLine(
+ "####################################################################################################");
+ Console.WriteLine();
+
+ Console.Write("Slack WebHook Url: ");
+ var input = Console.ReadLine();
+ if (string.IsNullOrEmpty(input)) throw new ArgumentException("No valid WebHook Url!");
+ var slackWebHookUrl = input;
+ Console.WriteLine();
+
+ Console.Write("Slack Channel (optional): ");
+ input = Console.ReadLine();
+ if (!string.IsNullOrEmpty(input)) slackChannel = input;
+ Console.WriteLine();
+
+ Console.Write("Slack Username (optional): ");
+ input = Console.ReadLine();
+ var slackUsername = string.IsNullOrEmpty(input) ? input : "Serilog Slack Sink Example";
+ Console.WriteLine();
+
+ Console.Write("Slack User Icon (optional): ");
+ input = Console.ReadLine();
+ var slackUserIcon = string.IsNullOrEmpty(input) ? input : ":monkey_face:";
+ Console.WriteLine();
+
+ var levelSwitch = new LoggingLevelSwitch(LogEventLevel.Verbose);
+
+ Log.Logger = new LoggerConfiguration()
+ .MinimumLevel.Verbose()
+ .WriteTo.Slack(
+ slackWebHookUrl,
+ slackChannel,
+ slackUsername,
+ slackUserIcon,
+ periodicBatchingSinkOptionsBatchSizeLimit: 1,
+ periodicBatchingSinkOptionsPeriod: TimeSpan.FromMilliseconds(10),
+ periodicBatchingSinkOptionsQueueLimit: 100,
+ sinkRestrictedToMinimumLevel: LogEventLevel.Verbose,
+ sinkOutputTemplate: "{Message}",
+ sinkLevelSwitch: levelSwitch
+ )
+ .CreateLogger();
+
+ Log.Write(LogEventLevel.Verbose, "Verbose Logging Message");
+ Log.Write(LogEventLevel.Debug, "Debug Logging Message");
+ Log.Write(LogEventLevel.Information, "Information Logging Message");
+ Log.Write(LogEventLevel.Warning, "Warning Logging Message");
+ Log.Write(LogEventLevel.Error, "Error Logging Message");
+ Log.Write(LogEventLevel.Fatal, "Fatal Logging Message");
+
+ try
+ {
+ throw new Exception("TEST EXCEPTION!");
+ }
+ catch (Exception e)
{
- string slackChannel = null;
-
- Console.WriteLine("####################################################################################################");
- Console.WriteLine("Serilog Slack Sink Example (ver. " + typeof(SlackSinkExample).Assembly.GetName().Version + ")");
- Console.WriteLine("####################################################################################################");
- Console.WriteLine();
-
- Console.Write("Slack WebHook Url: ");
- var input = Console.ReadLine();
- if (string.IsNullOrEmpty(input)) throw new ArgumentException("No valid WebHook Url!");
- var slackWebHookUrl = input;
- Console.WriteLine();
-
- Console.Write("Slack Channel (optional): ");
- input = Console.ReadLine();
- if (!string.IsNullOrEmpty(input)) slackChannel = input;
- Console.WriteLine();
-
- Console.Write("Slack Username (optional): ");
- input = Console.ReadLine();
- var slackUsername = string.IsNullOrEmpty(input) ? input : "Serilog Slack Sink Example";
- Console.WriteLine();
-
- Console.Write("Slack User Icon (optional): ");
- input = Console.ReadLine();
- var slackUserIcon = string.IsNullOrEmpty(input) ? input : ":monkey_face:";
- Console.WriteLine();
-
- var levelSwitch = new LoggingLevelSwitch(initialMinimumLevel: LogEventLevel.Verbose);
-
- Log.Logger = new LoggerConfiguration()
- .MinimumLevel.Verbose()
- .WriteTo.Slack(
- slackWebHookUrl: slackWebHookUrl,
- slackChannel: slackChannel,
- slackUsername: slackUsername,
- slackEmojiIcon: slackUserIcon,
-
- periodicBatchingSinkOptionsBatchSizeLimit: 1,
- periodicBatchingSinkOptionsPeriod: TimeSpan.FromMilliseconds(10),
- periodicBatchingSinkOptionsQueueLimit: 100,
-
- sinkRestrictedToMinimumLevel: LogEventLevel.Verbose,
- sinkOutputTemplate: "{Message}",
- sinkLevelSwitch: levelSwitch
- )
- .CreateLogger();
-
- Log.Write(LogEventLevel.Verbose, "Verbose Logging Message");
- Log.Write(LogEventLevel.Debug, "Debug Logging Message");
- Log.Write(LogEventLevel.Information, "Information Logging Message");
- Log.Write(LogEventLevel.Warning, "Warning Logging Message");
- Log.Write(LogEventLevel.Error, "Error Logging Message");
- Log.Write(LogEventLevel.Fatal, "Fatal Logging Message");
-
- try
- {
- throw new Exception("TEST EXCEPTION!");
- }
- catch (Exception e)
- {
- Log.Write(LogEventLevel.Fatal, e, "Fatal Logging Message with exception");
- }
-
- levelSwitch.MinimumLevel = LogEventLevel.Fatal;
-
- Log.Write(LogEventLevel.Error, "This Message shouldn't be send to Slack!");
-
- System.Threading.Thread.Sleep(10000);
-
- Console.WriteLine("Press any key to finish...");
- Console.ReadKey();
-
- Environment.Exit(0);
+ Log.Write(LogEventLevel.Fatal, e, "Fatal Logging Message with exception");
}
+
+ levelSwitch.MinimumLevel = LogEventLevel.Fatal;
+
+ Log.Write(LogEventLevel.Error, "This Message shouldn't be send to Slack!");
+
+ Thread.Sleep(10000);
+
+ Console.WriteLine("Press any key to finish...");
+ Console.ReadKey();
+
+ Environment.Exit(0);
}
-}
+}
\ No newline at end of file
diff --git a/src/jjm.one.Serilog.Sinks.SlackWebHook.Example/jjm.one.MiscUtilFunctions.Tests.xml b/src/jjm.one.Serilog.Sinks.SlackWebHook.Example/jjm.one.MiscUtilFunctions.Tests.xml
index 2e5c556..9f02b12 100644
--- a/src/jjm.one.Serilog.Sinks.SlackWebHook.Example/jjm.one.MiscUtilFunctions.Tests.xml
+++ b/src/jjm.one.Serilog.Sinks.SlackWebHook.Example/jjm.one.MiscUtilFunctions.Tests.xml
@@ -4,5 +4,17 @@
jjm.one.Serilog.Sinks.SlackWebHook.Example
+
+
+ This class contains examples on how to use the library.
+
+
+
+
+ The main function of the class.
+
+
+
+
diff --git a/src/jjm.one.Serilog.Sinks.SlackWebHook.Example/jjm.one.Serilog.Sinks.SlackWebHook.Example.csproj b/src/jjm.one.Serilog.Sinks.SlackWebHook.Example/jjm.one.Serilog.Sinks.SlackWebHook.Example.csproj
index 0fabd8c..37193a6 100644
--- a/src/jjm.one.Serilog.Sinks.SlackWebHook.Example/jjm.one.Serilog.Sinks.SlackWebHook.Example.csproj
+++ b/src/jjm.one.Serilog.Sinks.SlackWebHook.Example/jjm.one.Serilog.Sinks.SlackWebHook.Example.csproj
@@ -1,38 +1,37 @@
-
- net7.0
- disable
- enable
- 2.0.2
- Jonas Merkle [JJM]
- © by Jonas Merkle [JJM], 2023.
- jm.one.Serilog.Sinks.SlackWebHook.Example
- jm.one.Serilog.Sinks.SlackWebHook.Example
- A basic Slack Sink for the Serilog framwork. (Example)
- serilog, serilog-sink, slack, logging, csharp, example
- https://github.com/jjm-one/jjm.one.Serilog.Sinks.SlackWebHook
- git
- https://github.com/jjm-one/jjm.one.Serilog.Sinks.SlackWebHook
- false
- false
-
+
+ net7.0
+ disable
+ enable
+ 2.1.0
+ Jonas Merkle [JJM]
+ © by Jonas Merkle [JJM], 2023.
+ jjm.one.Serilog.Sinks.SlackWebHook.Example
+ A basic Slack Sink for the Serilog framwork. (Example)
+ serilog, serilog-sink, slack, logging, csharp, example
+ https://github.com/jjm-one/jjm.one.Serilog.Sinks.SlackWebHook
+ git
+ https://github.com/jjm-one/jjm.one.Serilog.Sinks.SlackWebHook
+ false
+ false
+
-
- latestmajor
- ./jjm.one.MiscUtilFunctions.Tests.xml
-
-
- latestmajor
- ./jjm.one.MiscUtilFunctions.Tests.xml
-
+
+ latestmajor
+ ./jjm.one.MiscUtilFunctions.Tests.xml
+
+
+ latestmajor
+ ./jjm.one.MiscUtilFunctions.Tests.xml
+
-
-
-
+
+
+
-
-
-
+
+
+
diff --git a/src/jjm.one.Serilog.Sinks.SlackWebHook.Tests/SlackLoggerConfigurationExtensionsConstructorParameterTests.cs b/src/jjm.one.Serilog.Sinks.SlackWebHook.Tests/SlackLoggerConfigurationExtensionsConstructorParameterTests.cs
index ac85bf3..b69cbf2 100644
--- a/src/jjm.one.Serilog.Sinks.SlackWebHook.Tests/SlackLoggerConfigurationExtensionsConstructorParameterTests.cs
+++ b/src/jjm.one.Serilog.Sinks.SlackWebHook.Tests/SlackLoggerConfigurationExtensionsConstructorParameterTests.cs
@@ -1,439 +1,399 @@
-using NUnit.Framework;
+using System;
+using System.Collections.Generic;
+using System.Net.Http;
+using NUnit.Framework;
using Serilog;
using Serilog.Events;
using Slack.Webhooks;
-using System;
-using System.Collections.Generic;
-using System.Net.Http;
-namespace jjm.one.Serilog.Sinks.SlackWebHook.Tests
+namespace jjm.one.Serilog.Sinks.SlackWebHook.Tests;
+
+[TestFixture]
+public class SlackLoggerConfigurationExtensionsConstructorParameterTests
{
- [TestFixture]
- public class SlackLoggerConfigurationExtensionsConstructorParameterTests
+ [SetUp]
+ public void SetUp()
{
- #region const
-
- public const string ValidWebHook = @"https://slack.com/api/api.test";
+ }
- #endregion
+ public const string ValidWebHook = @"https://slack.com/api/api.test";
- #region setup
+ [Test]
+ public void SingleChannel_ConstructorTest_WebHookUrlNull()
+ {
+ Assert.Throws(() =>
+ {
+ Log.Logger = new LoggerConfiguration()
+ .WriteTo.Slack(
+ null,
+ slackChannel: null
+ )
+ .CreateLogger();
+ });
+ }
- [SetUp]
- public void SetUp()
+ [Test]
+ public void SingleChannel_ConstructorTest_WebHookUrlEmpty()
+ {
+ Assert.Throws(() =>
{
+ Log.Logger = new LoggerConfiguration()
+ .WriteTo.Slack(
+ "",
+ slackChannel: null
+ )
+ .CreateLogger();
+ });
+ }
- }
+ [Test]
+ public void SingleChannel_ConstructorTest_WebHookUrlValid()
+ {
+ Assert.DoesNotThrow(() =>
+ {
+ Log.Logger = new LoggerConfiguration()
+ .WriteTo.Slack(
+ ValidWebHook,
+ slackChannel: null
+ )
+ .CreateLogger();
+ });
+ }
- #endregion
+ [Test]
+ public void MultiChannel_ConstructorTest_WebHookUrlNull()
+ {
+ Assert.Throws(() =>
+ {
+ Log.Logger = new LoggerConfiguration()
+ .WriteTo.Slack(
+ null,
+ slackChannel: null
+ )
+ .CreateLogger();
+ });
+ }
- #region WebHookUrl test
+ [Test]
+ public void MultiChannel_ConstructorTest_WebHookUrlEmpty()
+ {
+ Assert.Throws(() =>
+ {
+ Log.Logger = new LoggerConfiguration()
+ .WriteTo.Slack(
+ "",
+ slackChannels: null
+ )
+ .CreateLogger();
+ });
+ }
- [Test]
- public void SingleChannel_ConstructorTest_WebHookUrlNull()
+ [Test]
+ public void MultiChannel_ConstructorTest_WebHookUrlValid()
+ {
+ Assert.DoesNotThrow(() =>
{
- Assert.Throws(() =>
- {
- Log.Logger = new LoggerConfiguration()
- .WriteTo.Slack(
- slackWebHookUrl: null,
- slackChannel: null
- )
- .CreateLogger();
- });
- }
-
- [Test]
- public void SingleChannel_ConstructorTest_WebHookUrlEmpty()
+ Log.Logger = new LoggerConfiguration()
+ .WriteTo.Slack(
+ ValidWebHook,
+ slackChannels: null
+ )
+ .CreateLogger();
+ });
+ }
+
+ [Test]
+ public void SingleChannel_ConstructorTest_SlackParseObjCast()
+ {
+ Assert.Throws(() =>
{
- Assert.Throws(() =>
- {
- Log.Logger = new LoggerConfiguration()
- .WriteTo.Slack(
- slackWebHookUrl: "",
- slackChannel: null
- )
- .CreateLogger();
- });
- }
-
- [Test]
- public void SingleChannel_ConstructorTest_WebHookUrlValid()
+ Log.Logger = new LoggerConfiguration()
+ .WriteTo.Slack(
+ ValidWebHook,
+ slackChannel: null,
+ slackParseObj: "TestObject"
+ )
+ .CreateLogger();
+ });
+
+ Assert.DoesNotThrow(() =>
{
- Assert.DoesNotThrow(() =>
- {
- Log.Logger = new LoggerConfiguration()
- .WriteTo.Slack(
- slackWebHookUrl: ValidWebHook,
- slackChannel: null
- )
- .CreateLogger();
- });
- }
-
- [Test]
- public void MultiChannel_ConstructorTest_WebHookUrlNull()
+ Log.Logger = new LoggerConfiguration()
+ .WriteTo.Slack(
+ ValidWebHook,
+ slackChannel: null,
+ slackParseObj: ParseMode.None
+ )
+ .CreateLogger();
+ });
+ }
+
+ [Test]
+ public void MultiChannel_ConstructorTest_SlackParseObjCast()
+ {
+ Assert.Throws(() =>
{
- Assert.Throws(() =>
- {
- Log.Logger = new LoggerConfiguration()
- .WriteTo.Slack(
- slackWebHookUrl: null,
- slackChannel: null
- )
- .CreateLogger();
- });
- }
-
- [Test]
- public void MultiChannel_ConstructorTest_WebHookUrlEmpty()
+ Log.Logger = new LoggerConfiguration()
+ .WriteTo.Slack(
+ ValidWebHook,
+ slackChannels: null,
+ slackParseObj: "TestObject"
+ )
+ .CreateLogger();
+ });
+
+ Assert.DoesNotThrow(() =>
{
- Assert.Throws(() =>
- {
- Log.Logger = new LoggerConfiguration()
- .WriteTo.Slack(
- slackWebHookUrl: "",
- slackChannels: null
- )
- .CreateLogger();
- });
- }
-
- [Test]
- public void MultiChannel_ConstructorTest_WebHookUrlValid()
+ Log.Logger = new LoggerConfiguration()
+ .WriteTo.Slack(
+ ValidWebHook,
+ slackChannels: null,
+ slackParseObj: ParseMode.None
+ )
+ .CreateLogger();
+ });
+ }
+
+ [Test]
+ public void SingleChannel_ConstructorTest_SlackAttachmentColorsObjCast()
+ {
+ Assert.Throws(() =>
{
- Assert.DoesNotThrow(() =>
- {
- Log.Logger = new LoggerConfiguration()
- .WriteTo.Slack(
- slackWebHookUrl: ValidWebHook,
- slackChannels: null
- )
- .CreateLogger();
- });
- }
-
- #endregion
-
- #region slackParseObj cast test
-
- [Test]
- public void SingleChannel_ConstructorTest_SlackParseObjCast()
+ Log.Logger = new LoggerConfiguration()
+ .WriteTo.Slack(
+ ValidWebHook,
+ slackChannel: null,
+ slackAttachmentColorsObj: "TestObject"
+ )
+ .CreateLogger();
+ });
+
+ Assert.DoesNotThrow(() =>
{
+ Log.Logger = new LoggerConfiguration()
+ .WriteTo.Slack(
+ ValidWebHook,
+ slackChannel: null,
+ slackAttachmentColorsObj: new Dictionary
+ {
+ { LogEventLevel.Verbose, "" }
+ }
+ )
+ .CreateLogger();
+ });
+ }
- Assert.Throws(() =>
- {
- Log.Logger = new LoggerConfiguration()
- .WriteTo.Slack(
- slackWebHookUrl: ValidWebHook,
- slackChannel: null,
- slackParseObj: "TestObject"
- )
- .CreateLogger();
- });
-
- Assert.DoesNotThrow(() =>
- {
- Log.Logger = new LoggerConfiguration()
- .WriteTo.Slack(
- slackWebHookUrl: ValidWebHook,
- slackChannel: null,
- slackParseObj: ParseMode.None
- )
- .CreateLogger();
- });
- }
-
- [Test]
- public void MultiChannel_ConstructorTest_SlackParseObjCast()
+ [Test]
+ public void MultiChannel_ConstructorTest_SlackAttachmentColorsObjCast()
+ {
+ Assert.Throws(() =>
{
-
- Assert.Throws(() =>
- {
- Log.Logger = new LoggerConfiguration()
- .WriteTo.Slack(
- slackWebHookUrl: ValidWebHook,
- slackChannels: null,
- slackParseObj: "TestObject"
- )
- .CreateLogger();
- });
-
- Assert.DoesNotThrow(() =>
- {
- Log.Logger = new LoggerConfiguration()
- .WriteTo.Slack(
- slackWebHookUrl: ValidWebHook,
- slackChannels: null,
- slackParseObj: ParseMode.None
- )
- .CreateLogger();
- });
- }
-
- #endregion
-
- #region slackAttachmentColorsObj cast test
-
- [Test]
- public void SingleChannel_ConstructorTest_SlackAttachmentColorsObjCast()
+ Log.Logger = new LoggerConfiguration()
+ .WriteTo.Slack(
+ ValidWebHook,
+ slackChannels: null,
+ slackAttachmentColorsObj: "TestObject"
+ )
+ .CreateLogger();
+ });
+
+ Assert.DoesNotThrow(() =>
{
+ Log.Logger = new LoggerConfiguration()
+ .WriteTo.Slack(
+ ValidWebHook,
+ slackChannels: null,
+ slackAttachmentColorsObj: new Dictionary
+ {
+ { LogEventLevel.Verbose, "" }
+ }
+ )
+ .CreateLogger();
+ });
+ }
- Assert.Throws(() =>
- {
- Log.Logger = new LoggerConfiguration()
- .WriteTo.Slack(
- slackWebHookUrl: ValidWebHook,
- slackChannel: null,
- slackAttachmentColorsObj: "TestObject"
- )
- .CreateLogger();
- });
-
- Assert.DoesNotThrow(() =>
- {
- Log.Logger = new LoggerConfiguration()
- .WriteTo.Slack(
- slackWebHookUrl: ValidWebHook,
- slackChannel: null,
- slackAttachmentColorsObj: new Dictionary()
- {
- {LogEventLevel.Verbose, ""},
- }
- )
- .CreateLogger();
- });
- }
-
- [Test]
- public void MultiChannel_ConstructorTest_SlackAttachmentColorsObjCast()
+ [Test]
+ public void SingleChannel_ConstructorTest_SlackAttachmentFooterIconObjCast()
+ {
+ Assert.Throws(() =>
{
-
- Assert.Throws(() =>
- {
- Log.Logger = new LoggerConfiguration()
- .WriteTo.Slack(
- slackWebHookUrl: ValidWebHook,
- slackChannels: null,
- slackAttachmentColorsObj: "TestObject"
- )
- .CreateLogger();
- });
-
- Assert.DoesNotThrow(() =>
- {
- Log.Logger = new LoggerConfiguration()
- .WriteTo.Slack(
- slackWebHookUrl: ValidWebHook,
- slackChannels: null,
- slackAttachmentColorsObj: new Dictionary()
- {
- {LogEventLevel.Verbose, ""},
- }
- )
- .CreateLogger();
- });
- }
-
- #endregion
-
- #region slackAttachmentFooterIconObj cast test
-
- [Test]
- public void SingleChannel_ConstructorTest_SlackAttachmentFooterIconObjCast()
+ Log.Logger = new LoggerConfiguration()
+ .WriteTo.Slack(
+ ValidWebHook,
+ slackChannel: null,
+ slackAttachmentFooterIconObj: "TestObject"
+ )
+ .CreateLogger();
+ });
+
+ Assert.DoesNotThrow(() =>
{
+ Log.Logger = new LoggerConfiguration()
+ .WriteTo.Slack(
+ ValidWebHook,
+ slackChannel: null,
+ slackAttachmentFooterIconObj: new Dictionary
+ {
+ { LogEventLevel.Verbose, "" }
+ }
+ )
+ .CreateLogger();
+ });
+ }
- Assert.Throws(() =>
- {
- Log.Logger = new LoggerConfiguration()
- .WriteTo.Slack(
- slackWebHookUrl: ValidWebHook,
- slackChannel: null,
- slackAttachmentFooterIconObj: "TestObject"
- )
- .CreateLogger();
- });
-
- Assert.DoesNotThrow(() =>
- {
- Log.Logger = new LoggerConfiguration()
- .WriteTo.Slack(
- slackWebHookUrl: ValidWebHook,
- slackChannel: null,
- slackAttachmentFooterIconObj: new Dictionary()
- {
- {LogEventLevel.Verbose, ""},
- }
- )
- .CreateLogger();
- });
- }
-
- [Test]
- public void MultiChannel_ConstructorTest_SlackAttachmentFooterIconObjCast()
+ [Test]
+ public void MultiChannel_ConstructorTest_SlackAttachmentFooterIconObjCast()
+ {
+ Assert.Throws(() =>
{
-
- Assert.Throws(() =>
- {
- Log.Logger = new LoggerConfiguration()
- .WriteTo.Slack(
- slackWebHookUrl: ValidWebHook,
- slackChannels: null,
- slackAttachmentFooterIconObj: "TestObject"
- )
- .CreateLogger();
- });
-
- Assert.DoesNotThrow(() =>
- {
- Log.Logger = new LoggerConfiguration()
- .WriteTo.Slack(
- slackWebHookUrl: ValidWebHook,
- slackChannels: null,
- slackAttachmentFooterIconObj: new Dictionary()
- {
- {LogEventLevel.Verbose, ""},
- }
- )
- .CreateLogger();
- });
- }
-
- #endregion
-
- #region slackHttpClientObj cast test
-
- [Test]
- public void SingleChannel_ConstructorTest_SlackHttpClientObjCast()
+ Log.Logger = new LoggerConfiguration()
+ .WriteTo.Slack(
+ ValidWebHook,
+ slackChannels: null,
+ slackAttachmentFooterIconObj: "TestObject"
+ )
+ .CreateLogger();
+ });
+
+ Assert.DoesNotThrow(() =>
{
+ Log.Logger = new LoggerConfiguration()
+ .WriteTo.Slack(
+ ValidWebHook,
+ slackChannels: null,
+ slackAttachmentFooterIconObj: new Dictionary
+ {
+ { LogEventLevel.Verbose, "" }
+ }
+ )
+ .CreateLogger();
+ });
+ }
- Assert.Throws(() =>
- {
- Log.Logger = new LoggerConfiguration()
- .WriteTo.Slack(
- slackWebHookUrl: ValidWebHook,
- slackChannel: null,
- slackHttpClientObj: "TestObject"
- )
- .CreateLogger();
- });
-
- Assert.DoesNotThrow(() =>
- {
- Log.Logger = new LoggerConfiguration()
- .WriteTo.Slack(
- slackWebHookUrl: ValidWebHook,
- slackChannel: null,
- slackHttpClientObj: new HttpClient()
- )
- .CreateLogger();
- });
- }
-
- [Test]
- public void MultiChannel_ConstructorTest_SlackHttpClientObjCast()
+ [Test]
+ public void SingleChannel_ConstructorTest_SlackHttpClientObjCast()
+ {
+ Assert.Throws(() =>
+ {
+ Log.Logger = new LoggerConfiguration()
+ .WriteTo.Slack(
+ ValidWebHook,
+ slackChannel: null,
+ slackHttpClientObj: "TestObject"
+ )
+ .CreateLogger();
+ });
+
+ Assert.DoesNotThrow(() =>
{
+ Log.Logger = new LoggerConfiguration()
+ .WriteTo.Slack(
+ ValidWebHook,
+ slackChannel: null,
+ slackHttpClientObj: new HttpClient()
+ )
+ .CreateLogger();
+ });
+ }
- Assert.Throws(() =>
- {
- Log.Logger = new LoggerConfiguration()
- .WriteTo.Slack(
- slackWebHookUrl: ValidWebHook,
- slackChannels: null,
- slackHttpClientObj: "TestObject"
- )
- .CreateLogger();
- });
-
- Assert.DoesNotThrow(() =>
- {
- Log.Logger = new LoggerConfiguration()
- .WriteTo.Slack(
- slackWebHookUrl: ValidWebHook,
- slackChannels: null,
- slackHttpClientObj: new HttpClient()
- )
- .CreateLogger();
- });
- }
-
- #endregion
-
- #region generateSlackFunctions cast test
-
- private static string TestF1(LogEvent a, IFormatProvider b, object c)
+ [Test]
+ public void MultiChannel_ConstructorTest_SlackHttpClientObjCast()
+ {
+ Assert.Throws(() =>
{
- return null;
- }
- private static List TestF2(LogEvent a, IFormatProvider b, object c)
+ Log.Logger = new LoggerConfiguration()
+ .WriteTo.Slack(
+ ValidWebHook,
+ slackChannels: null,
+ slackHttpClientObj: "TestObject"
+ )
+ .CreateLogger();
+ });
+
+ Assert.DoesNotThrow(() =>
{
- return null;
- }
- private static List TestF3(LogEvent a, IFormatProvider b, object c)
+ Log.Logger = new LoggerConfiguration()
+ .WriteTo.Slack(
+ ValidWebHook,
+ slackChannels: null,
+ slackHttpClientObj: new HttpClient()
+ )
+ .CreateLogger();
+ });
+ }
+
+ private static string? TestF1(LogEvent a, IFormatProvider b, object c)
+ {
+ return null;
+ }
+
+ private static List? TestF2(LogEvent a, IFormatProvider b, object c)
+ {
+ return null;
+ }
+
+ private static List? TestF3(LogEvent a, IFormatProvider b, object c)
+ {
+ return null;
+ }
+
+ [Test]
+ public void SingleChannel_ConstructorTest_GenerateSlackFunctionsCast()
+ {
+ var f1 = TestF1;
+ var f2 = TestF2;
+ var f3 = TestF3;
+
+ Assert.Throws(() =>
+ {
+ Log.Logger = new LoggerConfiguration()
+ .WriteTo.Slack(
+ ValidWebHook,
+ slackChannel: null,
+ generateSlackFunctions: new Tuple