From ce2ac98cd4811b013eb69a57ce33a6cd1e906de5 Mon Sep 17 00:00:00 2001 From: Matthias Heil Date: Sat, 4 Apr 2026 13:34:18 +0200 Subject: [PATCH] Deleted unnecessary files --- .../Applications/AvaloniaLog4NetDI/App.axaml | 16 -- .../AvaloniaLog4NetDI/App.axaml.cs | 161 ------------------ .../AvaloniaLog4NetDI.csproj | 43 ----- .../Applications/AvaloniaLog4NetDI/Program.cs | 21 --- .../Properties/launchSettings.json | 19 --- .../AvaloniaLog4NetDI/ViewLocator.cs | 27 --- .../ViewModels/MainViewModel.cs | 21 --- .../ViewModels/ViewModelBase.cs | 7 - .../AvaloniaLog4NetDI/Views/MainWindow.axaml | 19 --- .../Views/MainWindow.axaml.cs | 8 - .../AvaloniaLog4NetDI/app.manifest | 18 -- .../appsettings.Development.json | 35 ---- .../appsettings.Production.json | 35 ---- .../AvaloniaLog4NetDI/appsettings.json | 35 ---- .../AvaloniaLog4NetDI/log4net.config | 23 --- .../AvaloniaLog4NetNoDI/App.axaml | 9 - .../AvaloniaLog4NetNoDI/App.axaml.cs | 29 ---- .../AvaloniaLog4NetNoDI.csproj | 41 ----- .../DataStores/MainControlsDataStore.cs | 10 -- .../Extensions/ServiceExtension.cs | 30 ---- .../Helpers/LoggingHelper.cs | 73 -------- .../AvaloniaLog4NetNoDI/Program.cs | 21 --- .../Properties/launchSettings.json | 19 --- .../Views/MainWindow.axaml | 19 --- .../Views/MainWindow.axaml.cs | 48 ------ .../AvaloniaLog4NetNoDI/app.manifest | 18 -- .../appsettings.Development.json | 35 ---- .../appsettings.Production.json | 35 ---- .../AvaloniaLog4NetNoDI/appsettings.json | 35 ---- .../AvaloniaLog4NetNoDI/log4net.config | 23 --- CSharp/Applications/AvaloniaNlogDI/App.axaml | 16 -- .../Applications/AvaloniaNlogDI/App.axaml.cs | 160 ----------------- .../AvaloniaNlogDI/AvaloniaNlogDI.csproj | 37 ---- CSharp/Applications/AvaloniaNlogDI/Program.cs | 21 --- .../Properties/launchSettings.json | 19 --- .../AvaloniaNlogDI/ViewLocator.cs | 27 --- .../ViewModels/MainViewModel.cs | 21 --- .../ViewModels/ViewModelBase.cs | 7 - .../AvaloniaNlogDI/Views/MainWindow.axaml | 19 --- .../AvaloniaNlogDI/Views/MainWindow.axaml.cs | 8 - .../Applications/AvaloniaNlogDI/app.manifest | 18 -- .../appsettings.Development.json | 29 ---- .../appsettings.Production.json | 29 ---- .../AvaloniaNlogDI/appsettings.json | 29 ---- .../Applications/AvaloniaNlogNoDI/App.axaml | 9 - .../AvaloniaNlogNoDI/App.axaml.cs | 29 ---- .../AvaloniaNlogNoDI/AvaloniaNlogNoDI.csproj | 35 ---- .../DataStores/MainControlsDataStore.cs | 10 -- .../Extensions/LoggerExtension.cs | 30 ---- .../AvaloniaNlogNoDI/Helpers/LoggingHelper.cs | 73 -------- .../Applications/AvaloniaNlogNoDI/Program.cs | 21 --- .../Properties/launchSettings.json | 19 --- .../AvaloniaNlogNoDI/Views/MainWindow.axaml | 19 --- .../Views/MainWindow.axaml.cs | 48 ------ .../AvaloniaNlogNoDI/app.manifest | 18 -- .../appsettings.Development.json | 29 ---- .../appsettings.Production.json | 29 ---- .../AvaloniaNlogNoDI/appsettings.json | 29 ---- Logging - CS.sln | 136 +-------------- 59 files changed, 2 insertions(+), 1905 deletions(-) delete mode 100644 CSharp/Applications/AvaloniaLog4NetDI/App.axaml delete mode 100644 CSharp/Applications/AvaloniaLog4NetDI/App.axaml.cs delete mode 100644 CSharp/Applications/AvaloniaLog4NetDI/AvaloniaLog4NetDI.csproj delete mode 100644 CSharp/Applications/AvaloniaLog4NetDI/Program.cs delete mode 100644 CSharp/Applications/AvaloniaLog4NetDI/Properties/launchSettings.json delete mode 100644 CSharp/Applications/AvaloniaLog4NetDI/ViewLocator.cs delete mode 100644 CSharp/Applications/AvaloniaLog4NetDI/ViewModels/MainViewModel.cs delete mode 100644 CSharp/Applications/AvaloniaLog4NetDI/ViewModels/ViewModelBase.cs delete mode 100644 CSharp/Applications/AvaloniaLog4NetDI/Views/MainWindow.axaml delete mode 100644 CSharp/Applications/AvaloniaLog4NetDI/Views/MainWindow.axaml.cs delete mode 100644 CSharp/Applications/AvaloniaLog4NetDI/app.manifest delete mode 100644 CSharp/Applications/AvaloniaLog4NetDI/appsettings.Development.json delete mode 100644 CSharp/Applications/AvaloniaLog4NetDI/appsettings.Production.json delete mode 100644 CSharp/Applications/AvaloniaLog4NetDI/appsettings.json delete mode 100644 CSharp/Applications/AvaloniaLog4NetDI/log4net.config delete mode 100644 CSharp/Applications/AvaloniaLog4NetNoDI/App.axaml delete mode 100644 CSharp/Applications/AvaloniaLog4NetNoDI/App.axaml.cs delete mode 100644 CSharp/Applications/AvaloniaLog4NetNoDI/AvaloniaLog4NetNoDI.csproj delete mode 100644 CSharp/Applications/AvaloniaLog4NetNoDI/DataStores/MainControlsDataStore.cs delete mode 100644 CSharp/Applications/AvaloniaLog4NetNoDI/Extensions/ServiceExtension.cs delete mode 100644 CSharp/Applications/AvaloniaLog4NetNoDI/Helpers/LoggingHelper.cs delete mode 100644 CSharp/Applications/AvaloniaLog4NetNoDI/Program.cs delete mode 100644 CSharp/Applications/AvaloniaLog4NetNoDI/Properties/launchSettings.json delete mode 100644 CSharp/Applications/AvaloniaLog4NetNoDI/Views/MainWindow.axaml delete mode 100644 CSharp/Applications/AvaloniaLog4NetNoDI/Views/MainWindow.axaml.cs delete mode 100644 CSharp/Applications/AvaloniaLog4NetNoDI/app.manifest delete mode 100644 CSharp/Applications/AvaloniaLog4NetNoDI/appsettings.Development.json delete mode 100644 CSharp/Applications/AvaloniaLog4NetNoDI/appsettings.Production.json delete mode 100644 CSharp/Applications/AvaloniaLog4NetNoDI/appsettings.json delete mode 100644 CSharp/Applications/AvaloniaLog4NetNoDI/log4net.config delete mode 100644 CSharp/Applications/AvaloniaNlogDI/App.axaml delete mode 100644 CSharp/Applications/AvaloniaNlogDI/App.axaml.cs delete mode 100644 CSharp/Applications/AvaloniaNlogDI/AvaloniaNlogDI.csproj delete mode 100644 CSharp/Applications/AvaloniaNlogDI/Program.cs delete mode 100644 CSharp/Applications/AvaloniaNlogDI/Properties/launchSettings.json delete mode 100644 CSharp/Applications/AvaloniaNlogDI/ViewLocator.cs delete mode 100644 CSharp/Applications/AvaloniaNlogDI/ViewModels/MainViewModel.cs delete mode 100644 CSharp/Applications/AvaloniaNlogDI/ViewModels/ViewModelBase.cs delete mode 100644 CSharp/Applications/AvaloniaNlogDI/Views/MainWindow.axaml delete mode 100644 CSharp/Applications/AvaloniaNlogDI/Views/MainWindow.axaml.cs delete mode 100644 CSharp/Applications/AvaloniaNlogDI/app.manifest delete mode 100644 CSharp/Applications/AvaloniaNlogDI/appsettings.Development.json delete mode 100644 CSharp/Applications/AvaloniaNlogDI/appsettings.Production.json delete mode 100644 CSharp/Applications/AvaloniaNlogDI/appsettings.json delete mode 100644 CSharp/Applications/AvaloniaNlogNoDI/App.axaml delete mode 100644 CSharp/Applications/AvaloniaNlogNoDI/App.axaml.cs delete mode 100644 CSharp/Applications/AvaloniaNlogNoDI/AvaloniaNlogNoDI.csproj delete mode 100644 CSharp/Applications/AvaloniaNlogNoDI/DataStores/MainControlsDataStore.cs delete mode 100644 CSharp/Applications/AvaloniaNlogNoDI/Extensions/LoggerExtension.cs delete mode 100644 CSharp/Applications/AvaloniaNlogNoDI/Helpers/LoggingHelper.cs delete mode 100644 CSharp/Applications/AvaloniaNlogNoDI/Program.cs delete mode 100644 CSharp/Applications/AvaloniaNlogNoDI/Properties/launchSettings.json delete mode 100644 CSharp/Applications/AvaloniaNlogNoDI/Views/MainWindow.axaml delete mode 100644 CSharp/Applications/AvaloniaNlogNoDI/Views/MainWindow.axaml.cs delete mode 100644 CSharp/Applications/AvaloniaNlogNoDI/app.manifest delete mode 100644 CSharp/Applications/AvaloniaNlogNoDI/appsettings.Development.json delete mode 100644 CSharp/Applications/AvaloniaNlogNoDI/appsettings.Production.json delete mode 100644 CSharp/Applications/AvaloniaNlogNoDI/appsettings.json diff --git a/CSharp/Applications/AvaloniaLog4NetDI/App.axaml b/CSharp/Applications/AvaloniaLog4NetDI/App.axaml deleted file mode 100644 index fdc349d..0000000 --- a/CSharp/Applications/AvaloniaLog4NetDI/App.axaml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetDI/App.axaml.cs b/CSharp/Applications/AvaloniaLog4NetDI/App.axaml.cs deleted file mode 100644 index 2f4deed..0000000 --- a/CSharp/Applications/AvaloniaLog4NetDI/App.axaml.cs +++ /dev/null @@ -1,161 +0,0 @@ -using Avalonia; -using Avalonia.Controls.ApplicationLifetimes; -using Avalonia.Data.Core; -using Avalonia.Data.Core.Plugins; -using Avalonia.Markup.Xaml; -using AvaloniaLog4NetDI.ViewModels; -using AvaloniaLog4NetDI.Views; -using Log4Net.Appender.LogView.Core; -using LogViewer.Avalonia; -using MessageBox.Avalonia; -using MessageBox.Avalonia.Enums; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Logging; -using RandomLogging.Service; -using System; -using System.Reflection; -using System.Threading; -using Icon = MessageBox.Avalonia.Enums.Icon; - -namespace AvaloniaLog4NetDI; - -public partial class App : Application -{ - public override void Initialize() - => AvaloniaXamlLoader.Load(this); - - public override void OnFrameworkInitializationCompleted() - { - if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) - { - // Line below is needed to remove Avalonia data validation. - // Without this line you will get duplicate validations from both Avalonia and CT - ExpressionObserver.DataValidators.RemoveAll(x => x is DataAnnotationsValidationPlugin); - - // catch all unhandled errors - AppDomain.CurrentDomain.UnhandledException += OnUnhandledException; - - HostApplicationBuilder builder = Host.CreateApplicationBuilder(); - - builder - /* - * Note: For information on launch profiles for debugging, - * see article: https://www.codeproject.com/Articles/5354478/NET-App-Settings-Demystified-Csharp-VB - */ - - // Register the Random Logging Service - .AddRandomBackgroundService() - - // visual debugging tools - .AddLogViewer() - - // Log4Net - .Logging.AddLog4Net(builder.Configuration); - - // uncomment to use custom logging colors (note: System.Drawing namespace) - // - //.Logging.AddLog4Net( - // builder.Configuration, - // options => - //{ - // options.Colors[LogLevel.Trace] = new() - // { - // Foreground = Color.White, - // Background = Color.DarkGray - // }; - - // options.Colors[LogLevel.Debug] = new() - // { - // Foreground = Color.White, - // Background = Color.Gray - // }; - - // options.Colors[LogLevel.Information] = new() - // { - // Foreground = Color.White, - // Background = Color.DodgerBlue - // }; - - // options.Colors[LogLevel.Warning] = new() - // { - // Foreground = Color.White, - // Background = Color.Orchid - // }; - //}); - - IServiceCollection services = builder.Services; - - services - .AddSingleton() - .AddSingleton(service => new MainWindow - { - DataContext = service.GetRequiredService() - }); - - _host = builder.Build(); - _cancellationTokenSource = new(); - - try - { - LogStartingMode(); - - // set and show - desktop.MainWindow = _host.Services.GetRequiredService(); - desktop.ShutdownRequested += OnShutdownRequested; - - // startup background services - _ = _host.StartAsync(_cancellationTokenSource.Token); - } - catch (OperationCanceledException) - { - // skip - } - catch (Exception ex) - { - ShowMessageBox("Unhandled Error", ex.Message); - return; - } - } - - base.OnFrameworkInitializationCompleted(); - } - - private void OnShutdownRequested(object? sender, ShutdownRequestedEventArgs e) - => _ = _host!.StopAsync(_cancellationTokenSource!.Token); - - #region Fields - - private IHost? _host; - private CancellationTokenSource? _cancellationTokenSource; - - #endregion - - private void OnUnhandledException(object sender, UnhandledExceptionEventArgs e) - => ShowMessageBox("Unhandled Error", ((Exception)e.ExceptionObject).Message); - - private void ShowMessageBox(string title, string message) - { - MessageBox.Avalonia.BaseWindows.Base.IMsBoxWindow messageBoxStandardWindow = MessageBoxManager - .GetMessageBoxStandardWindow(title, message, ButtonEnum.Ok, Icon.Stop); - - messageBoxStandardWindow.Show(); - } - - private void LogStartingMode() - { - // Get the Launch mode - bool isDevelopment = string.Equals(Environment.GetEnvironmentVariable("DOTNET_MODIFIABLE_ASSEMBLIES"), "debug", - StringComparison.InvariantCultureIgnoreCase); - - // initialize a logger & EventId - ILogger logger = _host!.Services.GetRequiredService>(); - EventId eventId = new EventId(id: 0, name: Assembly.GetEntryAssembly()!.GetName().Name); - - // log a test pattern for each log level - logger.TestPattern(eventId: eventId); - - // log that we have started... - logger.Emit(eventId, LogLevel.Information, $"Running in {(isDevelopment ? "Debug" : "Release")} mode"); - } -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetDI/AvaloniaLog4NetDI.csproj b/CSharp/Applications/AvaloniaLog4NetDI/AvaloniaLog4NetDI.csproj deleted file mode 100644 index 5e4fb47..0000000 --- a/CSharp/Applications/AvaloniaLog4NetDI/AvaloniaLog4NetDI.csproj +++ /dev/null @@ -1,43 +0,0 @@ - - - WinExe - net7.0 - enable - true - app.manifest - - - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - - - - - - - - - - - - - - - - - - - PreserveNewest - - - - diff --git a/CSharp/Applications/AvaloniaLog4NetDI/Program.cs b/CSharp/Applications/AvaloniaLog4NetDI/Program.cs deleted file mode 100644 index 9e9f474..0000000 --- a/CSharp/Applications/AvaloniaLog4NetDI/Program.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Avalonia; -using System; - -namespace AvaloniaLog4NetDI; - -internal class Program -{ - // Initialization code. Don't use any Avalonia, third-party APIs or any - // SynchronizationContext-reliant code before AppMain is called: things aren't initialized - // yet and stuff might break. - [STAThread] - public static void Main(string[] args) - => BuildAvaloniaApp() - .StartWithClassicDesktopLifetime(args); - - // Avalonia configuration, don't remove; also used by visual designer. - public static AppBuilder BuildAvaloniaApp() - => AppBuilder.Configure() - .UsePlatformDetect() - .LogToTrace(); -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetDI/Properties/launchSettings.json b/CSharp/Applications/AvaloniaLog4NetDI/Properties/launchSettings.json deleted file mode 100644 index ef5f09f..0000000 --- a/CSharp/Applications/AvaloniaLog4NetDI/Properties/launchSettings.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "profiles": { - "Development": { - "commandName": "Project", - "environmentVariables": { - "DOTNET_ENVIRONMENT": "Development" - } - }, - "Staging": { - "commandName": "Project", - "environmentVariables": { - "DOTNET_ENVIRONMENT": "Staging" - } - }, - "Production": { - "commandName": "Project" - } - } -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetDI/ViewLocator.cs b/CSharp/Applications/AvaloniaLog4NetDI/ViewLocator.cs deleted file mode 100644 index 5de3ffe..0000000 --- a/CSharp/Applications/AvaloniaLog4NetDI/ViewLocator.cs +++ /dev/null @@ -1,27 +0,0 @@ -using Avalonia.Controls; -using Avalonia.Controls.Templates; -using AvaloniaLog4NetDI.ViewModels; -using System; - -namespace AvaloniaLog4NetDI; - -public class ViewLocator : IDataTemplate -{ - public IControl Build(object data) - { - string name = data.GetType().FullName!.Replace("ViewModel", "View"); - Type? type = Type.GetType(name); - - if (type != null) - { - return (Control)Activator.CreateInstance(type)!; - } - - return new TextBlock { Text = "Not Found: " + name }; - } - - public bool Match(object data) - { - return data is ViewModelBase; - } -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetDI/ViewModels/MainViewModel.cs b/CSharp/Applications/AvaloniaLog4NetDI/ViewModels/MainViewModel.cs deleted file mode 100644 index eeb2e55..0000000 --- a/CSharp/Applications/AvaloniaLog4NetDI/ViewModels/MainViewModel.cs +++ /dev/null @@ -1,21 +0,0 @@ -using LogViewer.Core.ViewModels; - -namespace AvaloniaLog4NetDI.ViewModels; - -public class MainViewModel : ViewModelBase -{ - #region Constructor - - public MainViewModel(LogViewerControlViewModel logViewer) - { - LogViewer = logViewer; - } - - #endregion - - #region Properties - - public LogViewerControlViewModel LogViewer { get; } - - #endregion -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetDI/ViewModels/ViewModelBase.cs b/CSharp/Applications/AvaloniaLog4NetDI/ViewModels/ViewModelBase.cs deleted file mode 100644 index e9b5258..0000000 --- a/CSharp/Applications/AvaloniaLog4NetDI/ViewModels/ViewModelBase.cs +++ /dev/null @@ -1,7 +0,0 @@ -using CommunityToolkit.Mvvm.ComponentModel; - -namespace AvaloniaLog4NetDI.ViewModels; - -public class ViewModelBase : ObservableObject -{ -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetDI/Views/MainWindow.axaml b/CSharp/Applications/AvaloniaLog4NetDI/Views/MainWindow.axaml deleted file mode 100644 index b47ca6e..0000000 --- a/CSharp/Applications/AvaloniaLog4NetDI/Views/MainWindow.axaml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetDI/Views/MainWindow.axaml.cs b/CSharp/Applications/AvaloniaLog4NetDI/Views/MainWindow.axaml.cs deleted file mode 100644 index cdc7e4b..0000000 --- a/CSharp/Applications/AvaloniaLog4NetDI/Views/MainWindow.axaml.cs +++ /dev/null @@ -1,8 +0,0 @@ -using Avalonia.Controls; - -namespace AvaloniaLog4NetDI.Views; - -public partial class MainWindow : Window -{ - public MainWindow() => InitializeComponent(); -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetDI/app.manifest b/CSharp/Applications/AvaloniaLog4NetDI/app.manifest deleted file mode 100644 index e0ce8d0..0000000 --- a/CSharp/Applications/AvaloniaLog4NetDI/app.manifest +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - diff --git a/CSharp/Applications/AvaloniaLog4NetDI/appsettings.Development.json b/CSharp/Applications/AvaloniaLog4NetDI/appsettings.Development.json deleted file mode 100644 index 8c1ae04..0000000 --- a/CSharp/Applications/AvaloniaLog4NetDI/appsettings.Development.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Trace", - "System.Net.Http.HttpClient": "Trace" - } - }, - "Log4NetCore": { - "Name": "Log4NetLogViewer_Dev", - "LoggerRepository": "LogViewerRepository", - "OverrideCriticalLevelWith": "Critical", - "Watch": false, - "UseWebOrAppConfig": false, - "PropertyOverrides": [ - { - "XPath": "/log4net/appender[@name='ConsoleAppender']/layout/conversionPattern", - "Attributes": { - "Value": "%date [%thread] %-5level | %logger | %message%newline" - } - }, - { - "XPath": "/log4net/appender[@name='ConsoleAppender']/threshold", - "Attributes": { - "Value": "Trace" - } - }, - { - "XPath": "/log4net/appender[@name='DataStoreLogger']/threshold", - "Attributes": { - "Value": "Trace" - } - } - ] - } -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetDI/appsettings.Production.json b/CSharp/Applications/AvaloniaLog4NetDI/appsettings.Production.json deleted file mode 100644 index 48d4ad8..0000000 --- a/CSharp/Applications/AvaloniaLog4NetDI/appsettings.Production.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Trace", - "System.Net.Http.HttpClient": "Trace" - } - }, - "Log4NetCore": { - "Name": "Log4NetLogViewer_Prod", - "LoggerRepository": "LogViewerRepository", - "OverrideCriticalLevelWith": "Critical", - "Watch": false, - "UseWebOrAppConfig": false, - "PropertyOverrides": [ - { - "XPath": "/log4net/appender[@name='ConsoleAppender']/layout/conversionPattern", - "Attributes": { - "Value": "%date [%thread] %-5level | %logger | %message%newline" - } - }, - { - "XPath": "/log4net/appender[@name='ConsoleAppender']/threshold", - "Attributes": { - "Value": "Warn" - } - }, - { - "XPath": "/log4net/appender[@name='DataStoreLogger']/threshold", - "Attributes": { - "Value": "Warn" - } - } - ] - } -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetDI/appsettings.json b/CSharp/Applications/AvaloniaLog4NetDI/appsettings.json deleted file mode 100644 index 3b509e1..0000000 --- a/CSharp/Applications/AvaloniaLog4NetDI/appsettings.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Information", - "System.Net.Http.HttpClient": "Information" - } - }, - "Log4NetCore": { - "Name": "Log4NetLogViewer_default", - "LoggerRepository": "LogViewerRepository", - "OverrideCriticalLevelWith": "Critical", - "Watch": false, - "UseWebOrAppConfig": false, - "PropertyOverrides": [ - { - "XPath": "/log4net/appender[@name='ConsoleAppender']/layout/conversionPattern", - "Attributes": { - "Value": "%date [%thread] %-5level | %logger | %message%newline" - } - }, - { - "XPath": "/log4net/appender[@name='ConsoleAppender']/threshold", - "Attributes": { - "Value": "Info" - } - }, - { - "XPath": "/log4net/appender[@name='DataStoreLogger']/threshold", - "Attributes": { - "Value": "Info" - } - } - ] - } -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetDI/log4net.config b/CSharp/Applications/AvaloniaLog4NetDI/log4net.config deleted file mode 100644 index dd79167..0000000 --- a/CSharp/Applications/AvaloniaLog4NetDI/log4net.config +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/App.axaml b/CSharp/Applications/AvaloniaLog4NetNoDI/App.axaml deleted file mode 100644 index e0a4b17..0000000 --- a/CSharp/Applications/AvaloniaLog4NetNoDI/App.axaml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/App.axaml.cs b/CSharp/Applications/AvaloniaLog4NetNoDI/App.axaml.cs deleted file mode 100644 index 421a92b..0000000 --- a/CSharp/Applications/AvaloniaLog4NetNoDI/App.axaml.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Avalonia; -using Avalonia.Controls.ApplicationLifetimes; -using Avalonia.Data.Core; -using Avalonia.Data.Core.Plugins; -using Avalonia.Markup.Xaml; -using AvaloniaLog4NetNoDI.Views; - -namespace AvaloniaLog4NetNoDI; - -public partial class App : Application -{ - public override void Initialize() - { - AvaloniaXamlLoader.Load(this); - } - - public override void OnFrameworkInitializationCompleted() - { - if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) - { - // Line below is needed to remove Avalonia data validation. - // Without this line you will get duplicate validations from both Avalonia and CT - ExpressionObserver.DataValidators.RemoveAll(x => x is DataAnnotationsValidationPlugin); - desktop.MainWindow = new MainWindow(); - } - - base.OnFrameworkInitializationCompleted(); - } -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/AvaloniaLog4NetNoDI.csproj b/CSharp/Applications/AvaloniaLog4NetNoDI/AvaloniaLog4NetNoDI.csproj deleted file mode 100644 index 5e10e41..0000000 --- a/CSharp/Applications/AvaloniaLog4NetNoDI/AvaloniaLog4NetNoDI.csproj +++ /dev/null @@ -1,41 +0,0 @@ - - - - WinExe - net7.0 - enable - true - app.manifest - - - - - Always - - - Always - - - Always - - - - - - - - - - - - - - - - - - PreserveNewest - - - - \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/DataStores/MainControlsDataStore.cs b/CSharp/Applications/AvaloniaLog4NetNoDI/DataStores/MainControlsDataStore.cs deleted file mode 100644 index 807d88c..0000000 --- a/CSharp/Applications/AvaloniaLog4NetNoDI/DataStores/MainControlsDataStore.cs +++ /dev/null @@ -1,10 +0,0 @@ -using LogViewer.Core; -using LogDataStore = LogViewer.Avalonia.Logging.LogDataStore; - -namespace AvaloniaLog4NetNoDI.DataStores; - -// Application-wide shared instance of the LogDataStore logging entries -public static class MainControlsDataStore -{ - public static ILogDataStore DataStore { get; } = new LogDataStore(); -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/Extensions/ServiceExtension.cs b/CSharp/Applications/AvaloniaLog4NetNoDI/Extensions/ServiceExtension.cs deleted file mode 100644 index a20fa4c..0000000 --- a/CSharp/Applications/AvaloniaLog4NetNoDI/Extensions/ServiceExtension.cs +++ /dev/null @@ -1,30 +0,0 @@ -using AvaloniaLog4NetNoDI.DataStores; -using LogViewer.Core; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; -using System; -using Log4Net.Appender.LogView.Core; - -namespace AvaloniaLog4NetNoDI.Extensions; - -public static class ServiceExtension -{ - public static ILoggingBuilder AddLog4NetNoDI(this ILoggingBuilder builder, IConfiguration config) - { - // We need to use a shared instance of the DataStore to pass to the LogViewerControl - builder.Services.AddSingleton(MainControlsDataStore.DataStore); - - // call core Log4Net ServiceExtension initializer - builder.AddLog4Net(config); - - return builder; - } - - public static ILoggingBuilder AddLog4NetNoDI(this ILoggingBuilder builder, IConfiguration config, Action configure) - { - builder.AddLog4NetNoDI(config); - builder.Services.Configure(configure); - return builder; - } -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/Helpers/LoggingHelper.cs b/CSharp/Applications/AvaloniaLog4NetNoDI/Helpers/LoggingHelper.cs deleted file mode 100644 index 4749257..0000000 --- a/CSharp/Applications/AvaloniaLog4NetNoDI/Helpers/LoggingHelper.cs +++ /dev/null @@ -1,73 +0,0 @@ -using System; -using System.Drawing; -using Microsoft.Extensions.Logging; -using AvaloniaLog4NetNoDI.Extensions; -using Microsoft.Extensions.Configuration; -using Common.Core; -using Common.Core.Extensions; - -namespace AvaloniaLog4NetNoDI.Helpers; - -// application-wide DataStoreLogger Factory ... returns a wired up Logger instance -public static class LoggingHelper -{ - #region Constructors - - static LoggingHelper() - { - // retrieve the log level from 'appsettings' - string value = AppSettings.Current("Logging:LogLevel", "Default") ?? "Information"; - Enum.TryParse(value, out LogLevel logLevel); - - IConfigurationRoot configuration = new ConfigurationBuilder() - .Initialize() - .Build(); - - - // wire up the loggers - Factory = LoggerFactory.Create(builder => builder - - // visual debugging tools - .AddLog4NetNoDI(configuration) - - // uncomment to use custom logging colors (note: System.Drawing namespace) - // - //.AddLog4NetNoDI(configuration, options => - //{ - // options.Colors[LogLevel.Trace] = new() - // { - // Foreground = Color.White, - // Background = Color.DarkGray - // }; - - // options.Colors[LogLevel.Debug] = new() - // { - // Foreground = Color.White, - // Background = Color.Gray - // }; - - // options.Colors[LogLevel.Information] = new() - // { - // Foreground = Color.White, - // Background = Color.DodgerBlue - // }; - - // options.Colors[LogLevel.Warning] = new() - // { - // Foreground = Color.White, - // Background = Color.Orchid - // }; - //}) - - // set minimum log level from 'appsettings*.json' - .SetMinimumLevel(logLevel)); - } - - #endregion - - #region Properties - - public static ILoggerFactory Factory { get; } - - #endregion -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/Program.cs b/CSharp/Applications/AvaloniaLog4NetNoDI/Program.cs deleted file mode 100644 index 8b8e99f..0000000 --- a/CSharp/Applications/AvaloniaLog4NetNoDI/Program.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Avalonia; -using System; - -namespace AvaloniaLog4NetNoDI; - -internal class Program -{ - // Initialization code. Don't use any Avalonia, third-party APIs or any - // SynchronizationContext-reliant code before AppMain is called: things aren't initialized - // yet and stuff might break. - [STAThread] - public static void Main(string[] args) - => BuildAvaloniaApp() - .StartWithClassicDesktopLifetime(args); - - // Avalonia configuration, don't remove; also used by visual designer. - public static AppBuilder BuildAvaloniaApp() - => AppBuilder.Configure() - .UsePlatformDetect() - .LogToTrace(); -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/Properties/launchSettings.json b/CSharp/Applications/AvaloniaLog4NetNoDI/Properties/launchSettings.json deleted file mode 100644 index ef5f09f..0000000 --- a/CSharp/Applications/AvaloniaLog4NetNoDI/Properties/launchSettings.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "profiles": { - "Development": { - "commandName": "Project", - "environmentVariables": { - "DOTNET_ENVIRONMENT": "Development" - } - }, - "Staging": { - "commandName": "Project", - "environmentVariables": { - "DOTNET_ENVIRONMENT": "Staging" - } - }, - "Production": { - "commandName": "Project" - } - } -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/Views/MainWindow.axaml b/CSharp/Applications/AvaloniaLog4NetNoDI/Views/MainWindow.axaml deleted file mode 100644 index a872850..0000000 --- a/CSharp/Applications/AvaloniaLog4NetNoDI/Views/MainWindow.axaml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/Views/MainWindow.axaml.cs b/CSharp/Applications/AvaloniaLog4NetNoDI/Views/MainWindow.axaml.cs deleted file mode 100644 index 43b485c..0000000 --- a/CSharp/Applications/AvaloniaLog4NetNoDI/Views/MainWindow.axaml.cs +++ /dev/null @@ -1,48 +0,0 @@ -using Avalonia.Controls; -using AvaloniaLog4NetNoDI.DataStores; -using AvaloniaLog4NetNoDI.Helpers; -using LogViewer.Core; -using Microsoft.Extensions.Logging; -using RandomLogging.Service; -using System; -using System.Reflection; -using System.Threading; - -namespace AvaloniaLog4NetNoDI.Views; - -public partial class MainWindow : Window, ILogDataStoreImpl -{ - public MainWindow() - { - InitializeComponent(); - - // Initialize service and pass in the Logger - RandomLoggingService service = new(new Logger(LoggingHelper.Factory)); - - // Get the Launch mode - bool isDevelopment = string.Equals(Environment.GetEnvironmentVariable("DOTNET_MODIFIABLE_ASSEMBLIES"), "debug", - StringComparison.InvariantCultureIgnoreCase); - - // initialize a logger & EventId - Logger logger = new Logger(LoggingHelper.Factory); - EventId eventId = new EventId(id: 0, name: Assembly.GetEntryAssembly()!.GetName().Name); - - // log a test pattern for each log level - logger.TestPattern(eventId: eventId); - - // log that we have started... - logger.Emit(eventId, LogLevel.Information, $"Running in {(isDevelopment ? "Debug" : "Release")} mode"); - - // Start generating log entries - _ = service.StartAsync(CancellationToken.None); - - // manually wire up the logging to the view ... the control will show backlog entries... - DataStore = MainControlsDataStore.DataStore; - - // we can't bind the controls' DataContext to a static object, so assign the DataStore to the Window - // and pass a reference to the Window itself - LogViewerControl.DataContext = this; - } - - public ILogDataStore DataStore { get; init; } -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/app.manifest b/CSharp/Applications/AvaloniaLog4NetNoDI/app.manifest deleted file mode 100644 index e0ce8d0..0000000 --- a/CSharp/Applications/AvaloniaLog4NetNoDI/app.manifest +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/appsettings.Development.json b/CSharp/Applications/AvaloniaLog4NetNoDI/appsettings.Development.json deleted file mode 100644 index 8c1ae04..0000000 --- a/CSharp/Applications/AvaloniaLog4NetNoDI/appsettings.Development.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Trace", - "System.Net.Http.HttpClient": "Trace" - } - }, - "Log4NetCore": { - "Name": "Log4NetLogViewer_Dev", - "LoggerRepository": "LogViewerRepository", - "OverrideCriticalLevelWith": "Critical", - "Watch": false, - "UseWebOrAppConfig": false, - "PropertyOverrides": [ - { - "XPath": "/log4net/appender[@name='ConsoleAppender']/layout/conversionPattern", - "Attributes": { - "Value": "%date [%thread] %-5level | %logger | %message%newline" - } - }, - { - "XPath": "/log4net/appender[@name='ConsoleAppender']/threshold", - "Attributes": { - "Value": "Trace" - } - }, - { - "XPath": "/log4net/appender[@name='DataStoreLogger']/threshold", - "Attributes": { - "Value": "Trace" - } - } - ] - } -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/appsettings.Production.json b/CSharp/Applications/AvaloniaLog4NetNoDI/appsettings.Production.json deleted file mode 100644 index 48d4ad8..0000000 --- a/CSharp/Applications/AvaloniaLog4NetNoDI/appsettings.Production.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Trace", - "System.Net.Http.HttpClient": "Trace" - } - }, - "Log4NetCore": { - "Name": "Log4NetLogViewer_Prod", - "LoggerRepository": "LogViewerRepository", - "OverrideCriticalLevelWith": "Critical", - "Watch": false, - "UseWebOrAppConfig": false, - "PropertyOverrides": [ - { - "XPath": "/log4net/appender[@name='ConsoleAppender']/layout/conversionPattern", - "Attributes": { - "Value": "%date [%thread] %-5level | %logger | %message%newline" - } - }, - { - "XPath": "/log4net/appender[@name='ConsoleAppender']/threshold", - "Attributes": { - "Value": "Warn" - } - }, - { - "XPath": "/log4net/appender[@name='DataStoreLogger']/threshold", - "Attributes": { - "Value": "Warn" - } - } - ] - } -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/appsettings.json b/CSharp/Applications/AvaloniaLog4NetNoDI/appsettings.json deleted file mode 100644 index 3b509e1..0000000 --- a/CSharp/Applications/AvaloniaLog4NetNoDI/appsettings.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Information", - "System.Net.Http.HttpClient": "Information" - } - }, - "Log4NetCore": { - "Name": "Log4NetLogViewer_default", - "LoggerRepository": "LogViewerRepository", - "OverrideCriticalLevelWith": "Critical", - "Watch": false, - "UseWebOrAppConfig": false, - "PropertyOverrides": [ - { - "XPath": "/log4net/appender[@name='ConsoleAppender']/layout/conversionPattern", - "Attributes": { - "Value": "%date [%thread] %-5level | %logger | %message%newline" - } - }, - { - "XPath": "/log4net/appender[@name='ConsoleAppender']/threshold", - "Attributes": { - "Value": "Info" - } - }, - { - "XPath": "/log4net/appender[@name='DataStoreLogger']/threshold", - "Attributes": { - "Value": "Info" - } - } - ] - } -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/log4net.config b/CSharp/Applications/AvaloniaLog4NetNoDI/log4net.config deleted file mode 100644 index dd79167..0000000 --- a/CSharp/Applications/AvaloniaLog4NetNoDI/log4net.config +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaNlogDI/App.axaml b/CSharp/Applications/AvaloniaNlogDI/App.axaml deleted file mode 100644 index 0a0b4e2..0000000 --- a/CSharp/Applications/AvaloniaNlogDI/App.axaml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaNlogDI/App.axaml.cs b/CSharp/Applications/AvaloniaNlogDI/App.axaml.cs deleted file mode 100644 index 07dc1fb..0000000 --- a/CSharp/Applications/AvaloniaNlogDI/App.axaml.cs +++ /dev/null @@ -1,160 +0,0 @@ -using System; -using System.Drawing; -using System.Reflection; -using System.Threading; -using Avalonia; -using Avalonia.Controls.ApplicationLifetimes; -using Avalonia.Data.Core; -using Avalonia.Data.Core.Plugins; -using Avalonia.Markup.Xaml; -using AvaloniaNlogDI.ViewModels; -using AvaloniaNlogDI.Views; -using LogViewer.Avalonia; -using MessageBox.Avalonia; -using MessageBox.Avalonia.Enums; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Logging; -using NLog.Target.LogView.Core.Extensions; -using RandomLogging.Service; -using Icon = MessageBox.Avalonia.Enums.Icon; - -namespace AvaloniaNlogDI; - -public partial class App : Application -{ - public override void Initialize() - => AvaloniaXamlLoader.Load(this); - - public override void OnFrameworkInitializationCompleted() - { - if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) - { - // Line below is needed to remove Avalonia data validation. - // Without this line you will get duplicate validations from both Avalonia and CT - ExpressionObserver.DataValidators.RemoveAll(x => x is DataAnnotationsValidationPlugin); - - // catch all unhandled errors - AppDomain.CurrentDomain.UnhandledException += OnUnhandledException; - - HostApplicationBuilder builder = Host.CreateApplicationBuilder(); - - builder - /* - * Note: For information on launch profiles for debugging, - * see article: https://www.codeproject.com/Articles/5354478/NET-App-Settings-Demystified-Csharp-VB - */ - - // Register the Random Logging Service - .AddRandomBackgroundService() - - // visual debugging tools - .AddLogViewer() - - // Nlog Target - //.Logging.AddNLogTargets(builder.Configuration); - - // uncomment to use custom logging colors (note: System.Drawing namespace) - // - .Logging.AddNLogTargets(builder.Configuration, options => - { - options.Colors[LogLevel.Trace] = new() - { - Foreground = Color.White, - Background = Color.DarkGray - }; - - options.Colors[LogLevel.Debug] = new() - { - Foreground = Color.White, - Background = Color.Gray - }; - - options.Colors[LogLevel.Information] = new() - { - Foreground = Color.White, - Background = Color.DodgerBlue - }; - - options.Colors[LogLevel.Warning] = new() - { - Foreground = Color.White, - Background = Color.Orchid - }; - }); - - IServiceCollection services = builder.Services; - - services - .AddSingleton() - .AddSingleton(service => new MainWindow - { - DataContext = service.GetRequiredService() - }); - - _host = builder.Build(); - _cancellationTokenSource = new(); - - try - { - LogStartingMode(); - - // set and show - desktop.MainWindow = _host.Services.GetRequiredService(); - desktop.ShutdownRequested += OnShutdownRequested; - - // startup background services - _ = _host.StartAsync(_cancellationTokenSource.Token); - } - catch (OperationCanceledException) - { - // skip - } - catch (Exception ex) - { - ShowMessageBox("Unhandled Error", ex.Message); - return; - } - } - - base.OnFrameworkInitializationCompleted(); - } - - private void OnShutdownRequested(object? sender, ShutdownRequestedEventArgs e) - => _ = _host!.StopAsync(_cancellationTokenSource!.Token); - - #region Fields - - private IHost? _host; - private CancellationTokenSource? _cancellationTokenSource; - - #endregion - - private void OnUnhandledException(object sender, UnhandledExceptionEventArgs e) - => ShowMessageBox("Unhandled Error", ((Exception)e.ExceptionObject).Message); - - private void ShowMessageBox(string title, string message) - { - MessageBox.Avalonia.BaseWindows.Base.IMsBoxWindow messageBoxStandardWindow = MessageBoxManager - .GetMessageBoxStandardWindow(title, message, ButtonEnum.Ok, Icon.Stop); - - messageBoxStandardWindow.Show(); - } - - private void LogStartingMode() - { - // Get the Launch mode - bool isDevelopment = string.Equals(Environment.GetEnvironmentVariable("DOTNET_MODIFIABLE_ASSEMBLIES"), "debug", - StringComparison.InvariantCultureIgnoreCase); - - // initialize a logger & EventId - ILogger logger = _host!.Services.GetRequiredService>(); - EventId eventId = new EventId(id: 0, name: Assembly.GetEntryAssembly()!.GetName().Name); - - // log a test pattern for each log level - logger.TestPattern(eventId: eventId); - - // log that we have started... - logger.Emit(eventId, LogLevel.Information, $"Running in {(isDevelopment ? "Debug" : "Release")} mode"); - } -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaNlogDI/AvaloniaNlogDI.csproj b/CSharp/Applications/AvaloniaNlogDI/AvaloniaNlogDI.csproj deleted file mode 100644 index 5abd9ca..0000000 --- a/CSharp/Applications/AvaloniaNlogDI/AvaloniaNlogDI.csproj +++ /dev/null @@ -1,37 +0,0 @@ - - - WinExe - net7.0 - enable - true - app.manifest - - - - - Always - - - Always - - - Always - - - - - - - - - - - - - - - - - - - diff --git a/CSharp/Applications/AvaloniaNlogDI/Program.cs b/CSharp/Applications/AvaloniaNlogDI/Program.cs deleted file mode 100644 index b7e42f6..0000000 --- a/CSharp/Applications/AvaloniaNlogDI/Program.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Avalonia; -using System; - -namespace AvaloniaNlogDI; - -internal class Program -{ - // Initialization code. Don't use any Avalonia, third-party APIs or any - // SynchronizationContext-reliant code before AppMain is called: things aren't initialized - // yet and stuff might break. - [STAThread] - public static void Main(string[] args) - => BuildAvaloniaApp() - .StartWithClassicDesktopLifetime(args); - - // Avalonia configuration, don't remove; also used by visual designer. - public static AppBuilder BuildAvaloniaApp() - => AppBuilder.Configure() - .UsePlatformDetect() - .LogToTrace(); -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaNlogDI/Properties/launchSettings.json b/CSharp/Applications/AvaloniaNlogDI/Properties/launchSettings.json deleted file mode 100644 index ef5f09f..0000000 --- a/CSharp/Applications/AvaloniaNlogDI/Properties/launchSettings.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "profiles": { - "Development": { - "commandName": "Project", - "environmentVariables": { - "DOTNET_ENVIRONMENT": "Development" - } - }, - "Staging": { - "commandName": "Project", - "environmentVariables": { - "DOTNET_ENVIRONMENT": "Staging" - } - }, - "Production": { - "commandName": "Project" - } - } -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaNlogDI/ViewLocator.cs b/CSharp/Applications/AvaloniaNlogDI/ViewLocator.cs deleted file mode 100644 index 8e5a087..0000000 --- a/CSharp/Applications/AvaloniaNlogDI/ViewLocator.cs +++ /dev/null @@ -1,27 +0,0 @@ -using Avalonia.Controls; -using Avalonia.Controls.Templates; -using AvaloniaNlogDI.ViewModels; -using System; - -namespace AvaloniaNlogDI; - -public class ViewLocator : IDataTemplate -{ - public IControl Build(object data) - { - string name = data.GetType().FullName!.Replace("ViewModel", "View"); - Type? type = Type.GetType(name); - - if (type != null) - { - return (Control)Activator.CreateInstance(type)!; - } - - return new TextBlock { Text = "Not Found: " + name }; - } - - public bool Match(object data) - { - return data is ViewModelBase; - } -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaNlogDI/ViewModels/MainViewModel.cs b/CSharp/Applications/AvaloniaNlogDI/ViewModels/MainViewModel.cs deleted file mode 100644 index 647f58f..0000000 --- a/CSharp/Applications/AvaloniaNlogDI/ViewModels/MainViewModel.cs +++ /dev/null @@ -1,21 +0,0 @@ -using LogViewer.Core.ViewModels; - -namespace AvaloniaNlogDI.ViewModels; - -public class MainViewModel : ViewModelBase -{ - #region Constructor - - public MainViewModel(LogViewerControlViewModel logViewer) - { - LogViewer = logViewer; - } - - #endregion - - #region Properties - - public LogViewerControlViewModel LogViewer { get; } - - #endregion -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaNlogDI/ViewModels/ViewModelBase.cs b/CSharp/Applications/AvaloniaNlogDI/ViewModels/ViewModelBase.cs deleted file mode 100644 index ab2c57a..0000000 --- a/CSharp/Applications/AvaloniaNlogDI/ViewModels/ViewModelBase.cs +++ /dev/null @@ -1,7 +0,0 @@ -using CommunityToolkit.Mvvm.ComponentModel; - -namespace AvaloniaNlogDI.ViewModels; - -public class ViewModelBase : ObservableObject -{ -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaNlogDI/Views/MainWindow.axaml b/CSharp/Applications/AvaloniaNlogDI/Views/MainWindow.axaml deleted file mode 100644 index 2b4ead5..0000000 --- a/CSharp/Applications/AvaloniaNlogDI/Views/MainWindow.axaml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaNlogDI/Views/MainWindow.axaml.cs b/CSharp/Applications/AvaloniaNlogDI/Views/MainWindow.axaml.cs deleted file mode 100644 index c6c7d9a..0000000 --- a/CSharp/Applications/AvaloniaNlogDI/Views/MainWindow.axaml.cs +++ /dev/null @@ -1,8 +0,0 @@ -using Avalonia.Controls; - -namespace AvaloniaNlogDI.Views; - -public partial class MainWindow : Window -{ - public MainWindow() => InitializeComponent(); -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaNlogDI/app.manifest b/CSharp/Applications/AvaloniaNlogDI/app.manifest deleted file mode 100644 index e0ce8d0..0000000 --- a/CSharp/Applications/AvaloniaNlogDI/app.manifest +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - diff --git a/CSharp/Applications/AvaloniaNlogDI/appsettings.Development.json b/CSharp/Applications/AvaloniaNlogDI/appsettings.Development.json deleted file mode 100644 index a368fc9..0000000 --- a/CSharp/Applications/AvaloniaNlogDI/appsettings.Development.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Trace", - "System.Net.Http.HttpClient": "Trace" - } - }, - "NLog": { - "throwConfigExceptions": true, - "targets": { - "async": true, - "logconsole": { - "type": "Console", - "layout": "${longdate}|${level}|${message} |${all-event-properties} ${exception:format=tostring}" - }, - "DataStoreLogger": { - "type": "DataStoreLogger", - "layout": "${message}" - } - }, - "rules": [ - { - "logger": "*", - "minLevel": "Trace", - "writeTo": "logconsole, DataStoreLogger" - } - ] - } -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaNlogDI/appsettings.Production.json b/CSharp/Applications/AvaloniaNlogDI/appsettings.Production.json deleted file mode 100644 index 0963039..0000000 --- a/CSharp/Applications/AvaloniaNlogDI/appsettings.Production.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Warning", - "System.Net.Http.HttpClient": "Warning" - } - }, - "NLog": { - "throwConfigExceptions": true, - "targets": { - "async": true, - "logconsole": { - "type": "Console", - "layout": "${longdate}|${level}|${message} |${all-event-properties} ${exception:format=tostring}" - }, - "DataStoreLogger": { - "type": "DataStoreLogger", - "layout": "${message}" - } - }, - "rules": [ - { - "logger": "*", - "minLevel": "Warn", - "writeTo": "logconsole, DataStoreLogger" - } - ] - } -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaNlogDI/appsettings.json b/CSharp/Applications/AvaloniaNlogDI/appsettings.json deleted file mode 100644 index 00f8cba..0000000 --- a/CSharp/Applications/AvaloniaNlogDI/appsettings.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Information", - "System.Net.Http.HttpClient": "Information" - } - }, - "NLog": { - "throwConfigExceptions": true, - "targets": { - "async": true, - "logconsole": { - "type": "Console", - "layout": "${longdate}|${level}|${message} |${all-event-properties} ${exception:format=tostring}" - }, - "DataStoreLogger": { - "type": "DataStoreLogger", - "layout": "${message}" - } - }, - "rules": [ - { - "logger": "*", - "minLevel": "Info", - "writeTo": "logconsole, DataStoreLogger" - } - ] - } -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaNlogNoDI/App.axaml b/CSharp/Applications/AvaloniaNlogNoDI/App.axaml deleted file mode 100644 index 2c26ed1..0000000 --- a/CSharp/Applications/AvaloniaNlogNoDI/App.axaml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaNlogNoDI/App.axaml.cs b/CSharp/Applications/AvaloniaNlogNoDI/App.axaml.cs deleted file mode 100644 index d598ead..0000000 --- a/CSharp/Applications/AvaloniaNlogNoDI/App.axaml.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Avalonia; -using Avalonia.Controls.ApplicationLifetimes; -using Avalonia.Data.Core; -using Avalonia.Data.Core.Plugins; -using Avalonia.Markup.Xaml; -using AvaloniaNlogNoDI.Views; - -namespace AvaloniaNlogNoDI; - -public partial class App : Application -{ - public override void Initialize() - { - AvaloniaXamlLoader.Load(this); - } - - public override void OnFrameworkInitializationCompleted() - { - if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) - { - // Line below is needed to remove Avalonia data validation. - // Without this line you will get duplicate validations from both Avalonia and CT - ExpressionObserver.DataValidators.RemoveAll(x => x is DataAnnotationsValidationPlugin); - desktop.MainWindow = new MainWindow(); - } - - base.OnFrameworkInitializationCompleted(); - } -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaNlogNoDI/AvaloniaNlogNoDI.csproj b/CSharp/Applications/AvaloniaNlogNoDI/AvaloniaNlogNoDI.csproj deleted file mode 100644 index e130b41..0000000 --- a/CSharp/Applications/AvaloniaNlogNoDI/AvaloniaNlogNoDI.csproj +++ /dev/null @@ -1,35 +0,0 @@ - - - - WinExe - net7.0 - enable - true - app.manifest - - - - - Always - - - Always - - - Always - - - - - - - - - - - - - - - - diff --git a/CSharp/Applications/AvaloniaNlogNoDI/DataStores/MainControlsDataStore.cs b/CSharp/Applications/AvaloniaNlogNoDI/DataStores/MainControlsDataStore.cs deleted file mode 100644 index ae55c22..0000000 --- a/CSharp/Applications/AvaloniaNlogNoDI/DataStores/MainControlsDataStore.cs +++ /dev/null @@ -1,10 +0,0 @@ -using LogViewer.Core; -using LogDataStore = LogViewer.Avalonia.Logging.LogDataStore; - -namespace AvaloniaNlogNoDI.DataStores; - -// Application-wide shared instance of the LogDataStore logging entries -public static class MainControlsDataStore -{ - public static ILogDataStore DataStore { get; } = new LogDataStore(); -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaNlogNoDI/Extensions/LoggerExtension.cs b/CSharp/Applications/AvaloniaNlogNoDI/Extensions/LoggerExtension.cs deleted file mode 100644 index 9f2c3f7..0000000 --- a/CSharp/Applications/AvaloniaNlogNoDI/Extensions/LoggerExtension.cs +++ /dev/null @@ -1,30 +0,0 @@ -using AvaloniaNlogNoDI.DataStores; -using LogViewer.Core; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; -using NLog.Target.LogView.Core.Extensions; -using System; - -namespace AvaloniaNlogNoDI.Extensions; - -public static class ServicesExtension -{ - public static ILoggingBuilder AddNLogTargetsNoDI(this ILoggingBuilder builder, IConfiguration config) - { - // We need to use a shared instance of the DataStore to pass to the LogViewerControl - builder.Services.AddSingleton(MainControlsDataStore.DataStore); - - // call core NLog ServiceExtension initializer - builder.AddNLogTargets(config); - - return builder; - } - - public static ILoggingBuilder AddNLogTargetsNoDI(this ILoggingBuilder builder, IConfiguration config, Action configure) - { - builder.AddNLogTargetsNoDI(config); - builder.Services.Configure(configure); - return builder; - } -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaNlogNoDI/Helpers/LoggingHelper.cs b/CSharp/Applications/AvaloniaNlogNoDI/Helpers/LoggingHelper.cs deleted file mode 100644 index 3f096a1..0000000 --- a/CSharp/Applications/AvaloniaNlogNoDI/Helpers/LoggingHelper.cs +++ /dev/null @@ -1,73 +0,0 @@ -using System; -using System.Drawing; -using Microsoft.Extensions.Logging; -using AvaloniaNlogNoDI.Extensions; -using Microsoft.Extensions.Configuration; -using Common.Core; -using Common.Core.Extensions; - -namespace AvaloniaNlogNoDI.Helpers; - -// application-wide DataStoreLogger Factory ... returns a wired up Logger instance -public static class LoggingHelper -{ - #region Constructors - - static LoggingHelper() - { - // retrieve the log level from 'appsettings' - string value = AppSettings.Current("Logging:LogLevel", "Default") ?? "Information"; - Enum.TryParse(value, out LogLevel logLevel); - - IConfigurationRoot configuration = new ConfigurationBuilder() - .Initialize() - .Build(); - - - // wire up the loggers - Factory = LoggerFactory.Create(builder => builder - - // visual debugging tools - .AddNLogTargetsNoDI(configuration) - - // uncomment to use custom logging colors (note: System.Drawing namespace) - // - //.AddNLogTargets(configuration, options => - //{ - // options.Colors[LogLevel.Trace] = new() - // { - // Foreground = Color.White, - // Background = Color.DarkGray - // }; - - // options.Colors[LogLevel.Debug] = new() - // { - // Foreground = Color.White, - // Background = Color.Gray - // }; - - // options.Colors[LogLevel.Information] = new() - // { - // Foreground = Color.White, - // Background = Color.DodgerBlue - // }; - - // options.Colors[LogLevel.Warning] = new() - // { - // Foreground = Color.White, - // Background = Color.Orchid - // }; - //}) - - // set minimum log level from 'appsettings*.json' - .SetMinimumLevel(logLevel)); - } - - #endregion - - #region Properties - - public static ILoggerFactory Factory { get; } - - #endregion -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaNlogNoDI/Program.cs b/CSharp/Applications/AvaloniaNlogNoDI/Program.cs deleted file mode 100644 index 4b26956..0000000 --- a/CSharp/Applications/AvaloniaNlogNoDI/Program.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Avalonia; -using System; - -namespace AvaloniaNlogNoDI; - -internal class Program -{ - // Initialization code. Don't use any Avalonia, third-party APIs or any - // SynchronizationContext-reliant code before AppMain is called: things aren't initialized - // yet and stuff might break. - [STAThread] - public static void Main(string[] args) - => BuildAvaloniaApp() - .StartWithClassicDesktopLifetime(args); - - // Avalonia configuration, don't remove; also used by visual designer. - public static AppBuilder BuildAvaloniaApp() - => AppBuilder.Configure() - .UsePlatformDetect() - .LogToTrace(); -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaNlogNoDI/Properties/launchSettings.json b/CSharp/Applications/AvaloniaNlogNoDI/Properties/launchSettings.json deleted file mode 100644 index ef5f09f..0000000 --- a/CSharp/Applications/AvaloniaNlogNoDI/Properties/launchSettings.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "profiles": { - "Development": { - "commandName": "Project", - "environmentVariables": { - "DOTNET_ENVIRONMENT": "Development" - } - }, - "Staging": { - "commandName": "Project", - "environmentVariables": { - "DOTNET_ENVIRONMENT": "Staging" - } - }, - "Production": { - "commandName": "Project" - } - } -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaNlogNoDI/Views/MainWindow.axaml b/CSharp/Applications/AvaloniaNlogNoDI/Views/MainWindow.axaml deleted file mode 100644 index dc8cce0..0000000 --- a/CSharp/Applications/AvaloniaNlogNoDI/Views/MainWindow.axaml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaNlogNoDI/Views/MainWindow.axaml.cs b/CSharp/Applications/AvaloniaNlogNoDI/Views/MainWindow.axaml.cs deleted file mode 100644 index 9bdb3b9..0000000 --- a/CSharp/Applications/AvaloniaNlogNoDI/Views/MainWindow.axaml.cs +++ /dev/null @@ -1,48 +0,0 @@ -using Avalonia.Controls; -using AvaloniaNlogNoDI.DataStores; -using AvaloniaNlogNoDI.Helpers; -using LogViewer.Core; -using Microsoft.Extensions.Logging; -using RandomLogging.Service; -using System; -using System.Reflection; -using System.Threading; - -namespace AvaloniaNlogNoDI.Views; - -public partial class MainWindow : Window, ILogDataStoreImpl -{ - public MainWindow() - { - InitializeComponent(); - - // Initialize service and pass in the Logger - RandomLoggingService service = new(new Logger(LoggingHelper.Factory)); - - // Get the Launch mode - bool isDevelopment = string.Equals(Environment.GetEnvironmentVariable("DOTNET_MODIFIABLE_ASSEMBLIES"), "debug", - StringComparison.InvariantCultureIgnoreCase); - - // initialize a logger & EventId - Logger logger = new Logger(LoggingHelper.Factory); - EventId eventId = new EventId(id: 0, name: Assembly.GetEntryAssembly()!.GetName().Name); - - // log a test pattern for each log level - logger.TestPattern(eventId: eventId); - - // log that we have started... - logger.Emit(eventId, LogLevel.Information, $"Running in {(isDevelopment ? "Debug" : "Release")} mode"); - - // Start generating log entries - _ = service.StartAsync(CancellationToken.None); - - // manually wire up the logging to the view ... the control will show backlog entries... - DataStore = MainControlsDataStore.DataStore; - - // we can't bind the controls' DataContext to a static object, so assign the DataStore to the Window - // and pass a reference to the Window itself - LogViewerControl.DataContext = this; - } - - public ILogDataStore DataStore { get; init; } -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaNlogNoDI/app.manifest b/CSharp/Applications/AvaloniaNlogNoDI/app.manifest deleted file mode 100644 index e0ce8d0..0000000 --- a/CSharp/Applications/AvaloniaNlogNoDI/app.manifest +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - diff --git a/CSharp/Applications/AvaloniaNlogNoDI/appsettings.Development.json b/CSharp/Applications/AvaloniaNlogNoDI/appsettings.Development.json deleted file mode 100644 index a368fc9..0000000 --- a/CSharp/Applications/AvaloniaNlogNoDI/appsettings.Development.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Trace", - "System.Net.Http.HttpClient": "Trace" - } - }, - "NLog": { - "throwConfigExceptions": true, - "targets": { - "async": true, - "logconsole": { - "type": "Console", - "layout": "${longdate}|${level}|${message} |${all-event-properties} ${exception:format=tostring}" - }, - "DataStoreLogger": { - "type": "DataStoreLogger", - "layout": "${message}" - } - }, - "rules": [ - { - "logger": "*", - "minLevel": "Trace", - "writeTo": "logconsole, DataStoreLogger" - } - ] - } -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaNlogNoDI/appsettings.Production.json b/CSharp/Applications/AvaloniaNlogNoDI/appsettings.Production.json deleted file mode 100644 index 0963039..0000000 --- a/CSharp/Applications/AvaloniaNlogNoDI/appsettings.Production.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Warning", - "System.Net.Http.HttpClient": "Warning" - } - }, - "NLog": { - "throwConfigExceptions": true, - "targets": { - "async": true, - "logconsole": { - "type": "Console", - "layout": "${longdate}|${level}|${message} |${all-event-properties} ${exception:format=tostring}" - }, - "DataStoreLogger": { - "type": "DataStoreLogger", - "layout": "${message}" - } - }, - "rules": [ - { - "logger": "*", - "minLevel": "Warn", - "writeTo": "logconsole, DataStoreLogger" - } - ] - } -} \ No newline at end of file diff --git a/CSharp/Applications/AvaloniaNlogNoDI/appsettings.json b/CSharp/Applications/AvaloniaNlogNoDI/appsettings.json deleted file mode 100644 index 00f8cba..0000000 --- a/CSharp/Applications/AvaloniaNlogNoDI/appsettings.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Information", - "System.Net.Http.HttpClient": "Information" - } - }, - "NLog": { - "throwConfigExceptions": true, - "targets": { - "async": true, - "logconsole": { - "type": "Console", - "layout": "${longdate}|${level}|${message} |${all-event-properties} ${exception:format=tostring}" - }, - "DataStoreLogger": { - "type": "DataStoreLogger", - "layout": "${message}" - } - }, - "rules": [ - { - "logger": "*", - "minLevel": "Info", - "writeTo": "logconsole, DataStoreLogger" - } - ] - } -} \ No newline at end of file diff --git a/Logging - CS.sln b/Logging - CS.sln index 77d548a..b71efe5 100644 --- a/Logging - CS.sln +++ b/Logging - CS.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.4.33213.308 +# Visual Studio Version 18 +VisualStudioVersion = 18.4.11626.88 stable MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Core", "Core", "{A3BEB004-4DF7-4281-9A08-8A7BCD4E3CC9}" EndProject @@ -11,16 +11,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LogViewer.Core", "CSharp\Co EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Apps", "Apps", "{42E99803-0A95-4172-9079-3B8BF8CBDE9F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LogViewer.Wpf", "CSharp\Controls\LogViewer.Wpf\LogViewer.Wpf.csproj", "{094DF049-194B-43EE-A4EC-EC647FBB44D5}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Controls", "Controls", "{E589E611-C328-4D4F-817D-A91D5A1019FB}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WpfLoggingDI", "CSharp\Applications\WpfLoggingDI\WpfLoggingDI.csproj", "{9FF3C1CB-C95B-4660-8DD7-9B367824B67C}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Background Services", "Background Services", "{0CDEA51D-46FE-4767-BA2E-8F14582A926D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LogViewer.WinForms", "CSharp\Controls\LogViewer.WinForms\LogViewer.WinForms.csproj", "{5EEBF0FE-9A6E-4B01-A8E3-1F21F183DF22}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinFormsLoggingDI", "CSharp\Applications\WinFormsLoggingDI\WinFormsLoggingDI.csproj", "{82EA3F1F-8267-4920-AD4B-BA7087BBD5DA}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinFormsLoggingNoDI", "CSharp\Applications\WinFormsLoggingNoDI\WinFormsLoggingNoDI.csproj", "{E17466C3-8CC2-43EA-81C7-85F7EB1A7BAB}" @@ -37,10 +33,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RandomLogging.Service", "CSharp\Background Services\RandomLogging.Service\RandomLogging.Service.csproj", "{18BA2294-FE64-481F-A86F-F5FD84438B66}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.Wpf", "CSharp\Core\Common.Wpf\Common.Wpf.csproj", "{A221EE8F-EBAD-4016-89EB-F97956BCEC61}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.WinForms", "CSharp\Core\Common.WinForms\Common.WinForms.csproj", "{19CDD4D0-8826-4538-85CE-74ABAF0483B3}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MsLogger.Core", "CSharp\Core\MsLogger.Core\MsLogger.Core.csproj", "{0EDAAABD-495D-43A4-BDFB-A0506CAAC07E}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "LoggerProviders", "LoggerProviders", "{23CB559B-2361-4ED6-8A26-D1B1C2005D65}" @@ -69,40 +61,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinFormsSerilogNoDI", "CSha EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AvaloniaLoggingNoDI", "CSharp\Applications\AvaloniaLoggingNoDI\AvaloniaLoggingNoDI.csproj", "{85C96F55-572A-4FDF-A028-12D27A48FB4D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NLog", "NLog", "{D1F38E69-F9D3-4B88-A5E1-D452C276EF93}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WpfNLogDI", "CSharp\Applications\WpfNLogDI\WpfNLogDI.csproj", "{5029989A-051C-4C2D-B119-E237994AC0A7}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WpfNLogNoDI", "CSharp\Applications\WpfNLogNoDI\WpfNLogNoDI.csproj", "{E0E90703-3050-4764-8631-2948CFC18387}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinFormsNLogDI", "CSharp\Applications\WinFormsNLogDI\WinFormsNLogDI.csproj", "{6C76908A-CA1D-4B73-B4C6-E14FE7AE3405}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinFormsNLogNoDI", "CSharp\Applications\WinFormsNLogNoDI\WinFormsNLogNoDI.csproj", "{B2C63543-DD66-487D-AE75-07C5CE23F040}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AvaloniaNlogDI", "CSharp\Applications\AvaloniaNlogDI\AvaloniaNlogDI.csproj", "{3B977A58-6F4B-4782-BE1F-82B75A400227}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AvaloniaNlogNoDI", "CSharp\Applications\AvaloniaNlogNoDI\AvaloniaNlogNoDI.csproj", "{FE9FA295-A5C3-48B8-94C4-FDBA97171D63}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NLog.Target.LogView.Core", "CSharp\Core\NLog.Target.LogView.Core\NLog.Target.LogView.Core.csproj", "{840A16D5-CCF3-4DAA-A767-6AF7A7F3212F}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "3rd Party", "3rd Party", "{A0B29205-19C3-4FF8-B3A0-28E9E9182E86}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Log4Net.Appender.LogView.Core", "CSharp\Core\Log4Net.Appender.LogView.Core\Log4Net.Appender.LogView.Core.csproj", "{6EA556A7-365C-4693-BDC2-2AAB845560B4}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Log4Net", "Log4Net", "{96DDE55E-63E1-4803-BFC5-72D6D38B4746}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WpfLog4NetDI", "CSharp\Applications\WpfLog4NetDI\WpfLog4NetDI.csproj", "{3AE2C208-0C93-4654-A4A0-A0D0168BC6BB}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AvaloniaLog4NetDI", "CSharp\Applications\AvaloniaLog4NetDI\AvaloniaLog4NetDI.csproj", "{E48DA650-1EA0-4180-AE41-6A1007E5E4A8}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AvaloniaLog4NetNoDI", "CSharp\Applications\AvaloniaLog4NetNoDI\AvaloniaLog4NetNoDI.csproj", "{13F887B6-47E1-4FC9-A8FF-DF542AF05A81}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinFormsLog4NetDI", "CSharp\Applications\WinFormsLog4NetDI\WinFormsLog4NetDI.csproj", "{6AF44460-53CE-4563-A03E-A7D297FBC729}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinFormsLog4NetNoDI", "CSharp\Applications\WinFormsLog4NetNoDI\WinFormsLog4NetNoDI.csproj", "{AF87564F-FA75-486C-B35E-C8D29F1A3183}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WpfLog4NetNoDI", "CSharp\Applications\WpfLog4NetNoDI\WpfLog4NetNoDI.csproj", "{F8F1A367-A352-4338-AAA7-31F6E130CF9C}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Resources", "Resources", "{7CD1D21E-CCCF-4458-B5E5-63ED2081E439}" EndProject Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "Avalonia.Resources", "Resources\Avalonia.Resources\Avalonia.Resources.vbproj", "{30AB364F-51E4-4255-865D-1D163B5F82BC}" @@ -127,18 +87,10 @@ Global {34F75D8B-6F15-4DE4-8335-FED83557EB8E}.Debug|Any CPU.Build.0 = Debug|Any CPU {34F75D8B-6F15-4DE4-8335-FED83557EB8E}.Release|Any CPU.ActiveCfg = Release|Any CPU {34F75D8B-6F15-4DE4-8335-FED83557EB8E}.Release|Any CPU.Build.0 = Release|Any CPU - {094DF049-194B-43EE-A4EC-EC647FBB44D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {094DF049-194B-43EE-A4EC-EC647FBB44D5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {094DF049-194B-43EE-A4EC-EC647FBB44D5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {094DF049-194B-43EE-A4EC-EC647FBB44D5}.Release|Any CPU.Build.0 = Release|Any CPU {9FF3C1CB-C95B-4660-8DD7-9B367824B67C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9FF3C1CB-C95B-4660-8DD7-9B367824B67C}.Debug|Any CPU.Build.0 = Debug|Any CPU {9FF3C1CB-C95B-4660-8DD7-9B367824B67C}.Release|Any CPU.ActiveCfg = Release|Any CPU {9FF3C1CB-C95B-4660-8DD7-9B367824B67C}.Release|Any CPU.Build.0 = Release|Any CPU - {5EEBF0FE-9A6E-4B01-A8E3-1F21F183DF22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5EEBF0FE-9A6E-4B01-A8E3-1F21F183DF22}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5EEBF0FE-9A6E-4B01-A8E3-1F21F183DF22}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5EEBF0FE-9A6E-4B01-A8E3-1F21F183DF22}.Release|Any CPU.Build.0 = Release|Any CPU {82EA3F1F-8267-4920-AD4B-BA7087BBD5DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {82EA3F1F-8267-4920-AD4B-BA7087BBD5DA}.Debug|Any CPU.Build.0 = Debug|Any CPU {82EA3F1F-8267-4920-AD4B-BA7087BBD5DA}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -159,14 +111,6 @@ Global {18BA2294-FE64-481F-A86F-F5FD84438B66}.Debug|Any CPU.Build.0 = Debug|Any CPU {18BA2294-FE64-481F-A86F-F5FD84438B66}.Release|Any CPU.ActiveCfg = Release|Any CPU {18BA2294-FE64-481F-A86F-F5FD84438B66}.Release|Any CPU.Build.0 = Release|Any CPU - {A221EE8F-EBAD-4016-89EB-F97956BCEC61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A221EE8F-EBAD-4016-89EB-F97956BCEC61}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A221EE8F-EBAD-4016-89EB-F97956BCEC61}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A221EE8F-EBAD-4016-89EB-F97956BCEC61}.Release|Any CPU.Build.0 = Release|Any CPU - {19CDD4D0-8826-4538-85CE-74ABAF0483B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {19CDD4D0-8826-4538-85CE-74ABAF0483B3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {19CDD4D0-8826-4538-85CE-74ABAF0483B3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {19CDD4D0-8826-4538-85CE-74ABAF0483B3}.Release|Any CPU.Build.0 = Release|Any CPU {0EDAAABD-495D-43A4-BDFB-A0506CAAC07E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0EDAAABD-495D-43A4-BDFB-A0506CAAC07E}.Debug|Any CPU.Build.0 = Debug|Any CPU {0EDAAABD-495D-43A4-BDFB-A0506CAAC07E}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -211,62 +155,6 @@ Global {85C96F55-572A-4FDF-A028-12D27A48FB4D}.Debug|Any CPU.Build.0 = Debug|Any CPU {85C96F55-572A-4FDF-A028-12D27A48FB4D}.Release|Any CPU.ActiveCfg = Release|Any CPU {85C96F55-572A-4FDF-A028-12D27A48FB4D}.Release|Any CPU.Build.0 = Release|Any CPU - {5029989A-051C-4C2D-B119-E237994AC0A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5029989A-051C-4C2D-B119-E237994AC0A7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5029989A-051C-4C2D-B119-E237994AC0A7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5029989A-051C-4C2D-B119-E237994AC0A7}.Release|Any CPU.Build.0 = Release|Any CPU - {E0E90703-3050-4764-8631-2948CFC18387}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E0E90703-3050-4764-8631-2948CFC18387}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E0E90703-3050-4764-8631-2948CFC18387}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E0E90703-3050-4764-8631-2948CFC18387}.Release|Any CPU.Build.0 = Release|Any CPU - {6C76908A-CA1D-4B73-B4C6-E14FE7AE3405}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6C76908A-CA1D-4B73-B4C6-E14FE7AE3405}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6C76908A-CA1D-4B73-B4C6-E14FE7AE3405}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6C76908A-CA1D-4B73-B4C6-E14FE7AE3405}.Release|Any CPU.Build.0 = Release|Any CPU - {B2C63543-DD66-487D-AE75-07C5CE23F040}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B2C63543-DD66-487D-AE75-07C5CE23F040}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B2C63543-DD66-487D-AE75-07C5CE23F040}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B2C63543-DD66-487D-AE75-07C5CE23F040}.Release|Any CPU.Build.0 = Release|Any CPU - {3B977A58-6F4B-4782-BE1F-82B75A400227}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3B977A58-6F4B-4782-BE1F-82B75A400227}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3B977A58-6F4B-4782-BE1F-82B75A400227}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3B977A58-6F4B-4782-BE1F-82B75A400227}.Release|Any CPU.Build.0 = Release|Any CPU - {FE9FA295-A5C3-48B8-94C4-FDBA97171D63}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FE9FA295-A5C3-48B8-94C4-FDBA97171D63}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FE9FA295-A5C3-48B8-94C4-FDBA97171D63}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FE9FA295-A5C3-48B8-94C4-FDBA97171D63}.Release|Any CPU.Build.0 = Release|Any CPU - {840A16D5-CCF3-4DAA-A767-6AF7A7F3212F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {840A16D5-CCF3-4DAA-A767-6AF7A7F3212F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {840A16D5-CCF3-4DAA-A767-6AF7A7F3212F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {840A16D5-CCF3-4DAA-A767-6AF7A7F3212F}.Release|Any CPU.Build.0 = Release|Any CPU - {6EA556A7-365C-4693-BDC2-2AAB845560B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6EA556A7-365C-4693-BDC2-2AAB845560B4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6EA556A7-365C-4693-BDC2-2AAB845560B4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6EA556A7-365C-4693-BDC2-2AAB845560B4}.Release|Any CPU.Build.0 = Release|Any CPU - {3AE2C208-0C93-4654-A4A0-A0D0168BC6BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3AE2C208-0C93-4654-A4A0-A0D0168BC6BB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3AE2C208-0C93-4654-A4A0-A0D0168BC6BB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3AE2C208-0C93-4654-A4A0-A0D0168BC6BB}.Release|Any CPU.Build.0 = Release|Any CPU - {E48DA650-1EA0-4180-AE41-6A1007E5E4A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E48DA650-1EA0-4180-AE41-6A1007E5E4A8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E48DA650-1EA0-4180-AE41-6A1007E5E4A8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E48DA650-1EA0-4180-AE41-6A1007E5E4A8}.Release|Any CPU.Build.0 = Release|Any CPU - {13F887B6-47E1-4FC9-A8FF-DF542AF05A81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {13F887B6-47E1-4FC9-A8FF-DF542AF05A81}.Debug|Any CPU.Build.0 = Debug|Any CPU - {13F887B6-47E1-4FC9-A8FF-DF542AF05A81}.Release|Any CPU.ActiveCfg = Release|Any CPU - {13F887B6-47E1-4FC9-A8FF-DF542AF05A81}.Release|Any CPU.Build.0 = Release|Any CPU - {6AF44460-53CE-4563-A03E-A7D297FBC729}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6AF44460-53CE-4563-A03E-A7D297FBC729}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6AF44460-53CE-4563-A03E-A7D297FBC729}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6AF44460-53CE-4563-A03E-A7D297FBC729}.Release|Any CPU.Build.0 = Release|Any CPU - {AF87564F-FA75-486C-B35E-C8D29F1A3183}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AF87564F-FA75-486C-B35E-C8D29F1A3183}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AF87564F-FA75-486C-B35E-C8D29F1A3183}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AF87564F-FA75-486C-B35E-C8D29F1A3183}.Release|Any CPU.Build.0 = Release|Any CPU - {F8F1A367-A352-4338-AAA7-31F6E130CF9C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F8F1A367-A352-4338-AAA7-31F6E130CF9C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F8F1A367-A352-4338-AAA7-31F6E130CF9C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F8F1A367-A352-4338-AAA7-31F6E130CF9C}.Release|Any CPU.Build.0 = Release|Any CPU {30AB364F-51E4-4255-865D-1D163B5F82BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {30AB364F-51E4-4255-865D-1D163B5F82BC}.Debug|Any CPU.Build.0 = Debug|Any CPU {30AB364F-51E4-4255-865D-1D163B5F82BC}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -286,16 +174,12 @@ Global GlobalSection(NestedProjects) = preSolution {BB614345-449F-46AD-BE8C-5E2B7616EDE2} = {A3BEB004-4DF7-4281-9A08-8A7BCD4E3CC9} {34F75D8B-6F15-4DE4-8335-FED83557EB8E} = {A3BEB004-4DF7-4281-9A08-8A7BCD4E3CC9} - {094DF049-194B-43EE-A4EC-EC647FBB44D5} = {E589E611-C328-4D4F-817D-A91D5A1019FB} {9FF3C1CB-C95B-4660-8DD7-9B367824B67C} = {8635B709-1D5A-4445-AC45-F99EE264634F} - {5EEBF0FE-9A6E-4B01-A8E3-1F21F183DF22} = {E589E611-C328-4D4F-817D-A91D5A1019FB} {82EA3F1F-8267-4920-AD4B-BA7087BBD5DA} = {8635B709-1D5A-4445-AC45-F99EE264634F} {E17466C3-8CC2-43EA-81C7-85F7EB1A7BAB} = {8635B709-1D5A-4445-AC45-F99EE264634F} {1688A0C1-1AE6-49F6-972E-C419E2A3B58F} = {A3BEB004-4DF7-4281-9A08-8A7BCD4E3CC9} {622A3C25-28FD-484A-9CA5-E468CE926673} = {8635B709-1D5A-4445-AC45-F99EE264634F} {18BA2294-FE64-481F-A86F-F5FD84438B66} = {0CDEA51D-46FE-4767-BA2E-8F14582A926D} - {A221EE8F-EBAD-4016-89EB-F97956BCEC61} = {A3BEB004-4DF7-4281-9A08-8A7BCD4E3CC9} - {19CDD4D0-8826-4538-85CE-74ABAF0483B3} = {A3BEB004-4DF7-4281-9A08-8A7BCD4E3CC9} {0EDAAABD-495D-43A4-BDFB-A0506CAAC07E} = {23CB559B-2361-4ED6-8A26-D1B1C2005D65} {23CB559B-2361-4ED6-8A26-D1B1C2005D65} = {A3BEB004-4DF7-4281-9A08-8A7BCD4E3CC9} {8635B709-1D5A-4445-AC45-F99EE264634F} = {42E99803-0A95-4172-9079-3B8BF8CBDE9F} @@ -310,23 +194,7 @@ Global {44282198-F1B3-4C63-A52E-D2E6651D298C} = {578FF757-F837-4C23-B2CA-3CF8B016F6A9} {4F3E2263-7FDD-4EBF-929D-1013473720BE} = {578FF757-F837-4C23-B2CA-3CF8B016F6A9} {85C96F55-572A-4FDF-A028-12D27A48FB4D} = {8635B709-1D5A-4445-AC45-F99EE264634F} - {D1F38E69-F9D3-4B88-A5E1-D452C276EF93} = {42E99803-0A95-4172-9079-3B8BF8CBDE9F} - {5029989A-051C-4C2D-B119-E237994AC0A7} = {D1F38E69-F9D3-4B88-A5E1-D452C276EF93} - {E0E90703-3050-4764-8631-2948CFC18387} = {D1F38E69-F9D3-4B88-A5E1-D452C276EF93} - {6C76908A-CA1D-4B73-B4C6-E14FE7AE3405} = {D1F38E69-F9D3-4B88-A5E1-D452C276EF93} - {B2C63543-DD66-487D-AE75-07C5CE23F040} = {D1F38E69-F9D3-4B88-A5E1-D452C276EF93} - {3B977A58-6F4B-4782-BE1F-82B75A400227} = {D1F38E69-F9D3-4B88-A5E1-D452C276EF93} - {FE9FA295-A5C3-48B8-94C4-FDBA97171D63} = {D1F38E69-F9D3-4B88-A5E1-D452C276EF93} - {840A16D5-CCF3-4DAA-A767-6AF7A7F3212F} = {23CB559B-2361-4ED6-8A26-D1B1C2005D65} {A0B29205-19C3-4FF8-B3A0-28E9E9182E86} = {7CD1D21E-CCCF-4458-B5E5-63ED2081E439} - {6EA556A7-365C-4693-BDC2-2AAB845560B4} = {23CB559B-2361-4ED6-8A26-D1B1C2005D65} - {96DDE55E-63E1-4803-BFC5-72D6D38B4746} = {42E99803-0A95-4172-9079-3B8BF8CBDE9F} - {3AE2C208-0C93-4654-A4A0-A0D0168BC6BB} = {96DDE55E-63E1-4803-BFC5-72D6D38B4746} - {E48DA650-1EA0-4180-AE41-6A1007E5E4A8} = {96DDE55E-63E1-4803-BFC5-72D6D38B4746} - {13F887B6-47E1-4FC9-A8FF-DF542AF05A81} = {96DDE55E-63E1-4803-BFC5-72D6D38B4746} - {6AF44460-53CE-4563-A03E-A7D297FBC729} = {96DDE55E-63E1-4803-BFC5-72D6D38B4746} - {AF87564F-FA75-486C-B35E-C8D29F1A3183} = {96DDE55E-63E1-4803-BFC5-72D6D38B4746} - {F8F1A367-A352-4338-AAA7-31F6E130CF9C} = {96DDE55E-63E1-4803-BFC5-72D6D38B4746} {30AB364F-51E4-4255-865D-1D163B5F82BC} = {7CD1D21E-CCCF-4458-B5E5-63ED2081E439} {170F33B5-C7C4-4D97-8DB9-DE508E2DFCD0} = {A0B29205-19C3-4FF8-B3A0-28E9E9182E86} {78E23FC2-A337-4FC2-AEBF-CDC517AEA30C} = {8635B709-1D5A-4445-AC45-F99EE264634F}