Я запускаю JVM программно с ProcessBuilder . Для ясности давайте назовем JVM, которая использует JBM A ProcessBuilder, и ту, в которой он запускает JVM B. JVM B использует slf4j / log4j для ведения журнала.
Проблема здесь в том, что класс, который я выполняю в JVM B, - это класс, который я иногда запускаю в отладчике, где полезно иметь консольный вывод.
Однако, если я запускаю JVM B с ProcessBuilder, то я не хочу вывод консоли, потому что для этого требуется JVM A для чтения вывода процесса или зависание JVM B.
Есть ли способ управления slf4j или log4j изнутри JVM B, чтобы, если мой основной класс в JVM посчитал нецелесообразным использование консоли для ведения журнала, он не попытался бы это сделать? ( например, он отключает консольные приложения) Я бы предпочел не поддерживать отдельные файлы log4j.configuration, хотя я сделаю это, если потребуется.
например. в моем основном классе
static {
if (shouldntUseConsole())
{
?????
}
}
Я могу понять, как реализовать shouldntUseConsole()
, но я не знаю, что поставить на ?????
.