initial commit
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
<Window x:Class="AvaloniaNlogNoDI.Views.MainWindow"
|
||||
xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
|
||||
x:Name="Window"
|
||||
|
||||
xmlns:control="clr-namespace:LogViewer.Avalonia;assembly=LogViewer.Avalonia"
|
||||
|
||||
mc:Ignorable="d"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
|
||||
Title="C# AVALONIA MINIMAL | LogViewer Control Example - Dot Net 7.0"
|
||||
Icon="avares://Avalonia.Resources/Assets/avalonia-logo.ico"
|
||||
WindowStartupLocation="CenterScreen" Height="634" Width="600">
|
||||
|
||||
<control:LogViewerControl x:Name="LogViewerControl" />
|
||||
|
||||
</Window>
|
||||
@@ -0,0 +1,48 @@
|
||||
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<RandomLoggingService>(LoggingHelper.Factory));
|
||||
|
||||
// Get the Launch mode
|
||||
bool isDevelopment = string.Equals(Environment.GetEnvironmentVariable("DOTNET_MODIFIABLE_ASSEMBLIES"), "debug",
|
||||
StringComparison.InvariantCultureIgnoreCase);
|
||||
|
||||
// initialize a logger & EventId
|
||||
Logger<MainWindow> logger = new Logger<MainWindow>(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; }
|
||||
}
|
||||
Reference in New Issue
Block a user