Что будет делать Environment.FailFast в .NET Core при развертывании в среде Linux? - PullRequest
0 голосов
/ 22 января 2019

В документах по этому методу сказано:

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

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

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

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

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

TIA

1 Ответ

0 голосов
/ 22 января 2019

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

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.Так что я думаю, что он существует быстро и выдает журнал в консоль.

...