Затем для инициализации регистратора используйте следующий подход

у иметь диагностический журнал, который создается несколькими задачами, управляющими данными. Эти задачи могут быть в нескольких потоках. Каждая задача должна записать элемент (возможно, с подэлементами) в журнал; войти и выйти быстро. Если бы это была ситуация с одной задачей, я бы использовалXMLStreamWriter так как это кажется лучшим решением для простоты / функциональности без необходимости хранить всплывающий XML-документ в памяти.

Но это не единственная задача, и я не уверен, как лучше всего убедиться, что это «потокобезопасный», где «потокобезопасность» в этом приложении означает, что каждый элемент журнала должен записываться в журнал правильно и последовательно (один раз после другой и никак не чередующийся).

Какие-либо предложения? У меня есть смутное представление о том, что нужно использовать очередь элементов журнала (каждый из которых может быть быстро создан: мое приложение занято реальной работой, чувствительной к производительности), и у меня есть отдельный поток, который обрабатывает журнал. элементы и отправляет их в файл, чтобы регистрация не прерывала производителей.

Ведение журнала не обязательно должно быть XML, но я хочу, чтобы оно было структурированным и машиночитаемым.

редактировать: я положил "Threadsafe" в кавычки. Log4j кажется очевидным выбором (новым для меня, но старым для сообщества), зачем изобретать велосипед ...

Ответы на вопрос(1)

Ваш ответ на вопрос