У меня есть Java-апплет (фактический ), который генерирует частые сообщения журнала в System.out. Если консоль Java включена в браузере пользователя, она, конечно, сохранит ссылки на все эти строки и предотвратит их сборку мусора. Проблема заключается в количестве журнальных сообщений, которые сохраняет консоль: куча апплета растет очень быстро. После четырех дней работы он выдаст исключение OutOfMemory. Насколько я могу судить по jmap и jhat, строки журнала представляют большую часть его занимаемой площади.
Существует ли API для более жесткого ограничения количества или общего размера сообщений, сохраняемых консолью Java? В случае ошибки мне понадобятся только самые последние сообщения. Консоль в какой-то момент начинает удалять самые старые сообщения, но только после того, как она стала действительно огромной.
Я понимаю, что «не запускайте консоль» или «просто очищайте консоль» - это возможные решения, но вы когда-нибудь пытались спросить у нетехнического пользователя, включена ли у него консоль Java? Или попытаться провести их через просмотр и очистку? Я действительно хотел бы, чтобы они оставили консоль включенной, чтобы я мог видеть сообщения в случае ошибки.