Вы можете создать одноэлементную службу, которая обрабатывает событие WriteLine. Это будет срабатывать только при ошибках благодаря Console.SetError(this);
public class ExceptionNotificationService : TextWriter
{
private TextWriter _decorated;
public override Encoding Encoding => Encoding.UTF8;
public event EventHandler<string> OnException;
public ExceptionNotificationService()
{
_decorated = Console.Error;
Console.SetError(this);
}
public override void WriteLine(string value)
{
OnException?.Invoke(this, value);
_decorated.WriteLine(value);
}
}
Затем вы добавляете его в файл Startup.cs в функции ConfigureServices:
services.AddSingleton<ExceptionNotificationService>();
Чтобы использовать его, вы просто подписываетесь на событие OnException в главном окне.
Источник