Что будет делать Environment.FailFast в.NET Core при развертывании в среде Linux?

Документы для этого метода говорят:

Немедленно завершает процесс после записи сообщения в журнал событий приложений Windows, а затем включает сообщение и необязательную информацию об исключениях в отчеты об ошибках в Microsoft.

Но как быть при развертывании в среде Linux, где нет отчетов об ошибках EventLog или Windows?

Я хочу воспользоваться возможностью немедленного завершения консольного приложения таким образом, но неясно, является ли этот метод правильным. Есть ли лучший подход для Linux?

План состоит в том, чтобы мое консольное приложение работало в контейнере Linux. Мне бы хотелось, чтобы приложение могло завершать работу и, таким образом, вызывать завершение контейнера, чтобы инфраструктура могла раскручивать новый. Тем не менее, я только начинаю с Docker (и мои навыки Linux очень ржавые). Так что я в растерянности здесь...

Мне, вероятно, придется раскрутить небольшую выборку и просто повозиться, но надеялся задать вопрос здесь на тот случай, если кто-нибудь сможет дать более быстрый ответ.

ТИА

1 ответ

Решение

Ничего подобного не попробовать!

using System;

namespace testing
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            System.Environment.FailFast("oh shoot");
            Console.WriteLine("Bye!");
        }
    }
}

Дает мне

/tmp/testing$ dotnet run
Hello World!
FailFast:
oh shoot

   at System.Environment.FailFast(System.String, System.Exception)
   at System.Environment.FailFast(System.String)
   at testing.Program.Main(System.String[])

Я не видел никаких дополнительных сообщений журнала ни в одном /var/log, Так что я думаю, что он существует быстро и выдает журнал в консоль.

Другие вопросы по тегам