Как обеспечить хорошее ведение журнала при закрытии приложения? - PullRequest
0 голосов
/ 24 октября 2019

У меня есть класс Foo, который является оберткой для объекта SerialPort. Он также содержит класс Log, который я использую как для отображения сообщений, так и для сохранения их в файл.

Foo прослушивает события портов и обрабатывает их через поток, в котором происходят все операции регистрации.

Когда я закрываю свое приложение, я хочу убедиться, что все исходящие сообщения отправлены, а все входящие сообщения обработаны и зарегистрированы.

Прямо сейчас ~ Log закрывает файл журнала,и я в последний раз вызываю функции ведения журнала в коде ThreadAbortException для потоков и отменяю протектор из ~ foo (), но я узнал, что порядок вызовов Finalizer не гарантирован, что напоминает исключение nullpointerException, если мой объект журнала завершен до Foo.

Правильно ли я беспокоюсь? какой будет правильный путь?

...