отследить дескриптор файла
Вопрос
У меня огромный слух, который использует log4j, и для его настройки используется один файл конфигурации.В этом файле конфигурации не упоминаются определенные файлы журналов, но в папке журналов генерируются дополнительные файлы, помимо тех, которые указаны в файле конфигурации.Я искал другие комбинации (logger|log4j|log).(properties|xml) и не нашел ничего многообещающего во всех jar-файлах, включенных в ухо.Как мне определить, какой поток/класс-нарушитель создает эти дополнительные файлы?
Решение
Попробуйте разместить точку останова в конструкторах класса File и в методах mkdir и createNewFile.Обычно код использует класс File для создания файлов или каталогов.У вас должен быть исходный код Java для этих классов, включенный в вашу JVM.
Другие советы
Добавлять -Dlog4j.debug
в командную строку, и в стандартном выводе будет дополнительная информация о том, как она настроена.
Формально SysInternal, теперь Microsoft Process Explorerhttp://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
Пункт меню «Найти» -> «Найти дескриптор или DLL...»
SysInternals может не помочь с вводом-выводом класса Java.Попробуйте получить дамп потока JVM (например, kill -3) во время записи этих журналов.Вы сможете поймать поток с поличным с помощью пакетов java.io в верхней части трассировки стека.