Если вы можете изменить исходный код, тогда для рассмотрения будет доступен другой вариант.
В моих приложениях я всегда и только регистрирую сообщения FATAL из точки ввода моих приложений (например, «main()»), поскольку я знаю только, что они фатальны, если я собираюсь выйти из приложения из-за них.
Следовательно, в этом одном месте (или несколько, если у вас есть несколько точек входа в приложение), создайте Log4j Logger со специальным классом или MDC из «syslog» или аналогичным. После того, как вы поймаете ошибку «Будущее-FATAL», зарегистрируйте ее обычным способом (для ваших других файлов журналов и т. Д.), Но также вызовите метод fatal() в этом новом журнале регистрации «syslog» только с точным сообщением, которое вы (например, только класс исключения и сообщение, но без трассировки стека). Затем настройте Log4j, чтобы направить только этот класс «syslog» или MDC на вновь настроенный Appender, предназначенный для SysLog.
Ta-dum!
Другой случай использования, где можно было бы хотеть это когда вы запускает набор тестов, которые содержат отрицательные тесты, которые, как ожидается, будут генерировать исключения, которые мы всегда хотим регистрировать в процессе производства. Мы не хотим, чтобы наши тестовые журналы были заполнены исключениями, которые являются номинальными для курса. – 2015-08-06 22:14:35