Программная проблема с журналированием Java

Вы можете использовать объект шаблона в C ++ для этого. Я сделал что-то вроде этого:

template<typename T, size_t col>
T process(T a[][col], size_t row) {
...
}

проблема с этим подходом заключается в том, что для каждого значения col, которое вы предоставляете, создается новое определение функции с использованием шаблона. поэтому

int some_mat[3][3], another_mat[4,5];
process(some_mat, 3);
process(another_mat, 4);

дважды создает шаблон для создания двух определений функций (один из которых col = 3 и один, где col = 5).

0
задан Cthulhujr 3 March 2019 в 19:38
поделиться

1 ответ

Если я запускаю приложение с помощью Level.OFF, создается файл журнала (включая .lck), но ничего не пишется.

.lck и файл журнала создаются при создании FileHandler. Если вам не нужны эти файлы, не создавайте FileHandler, когда уровень выключен.

Если я запускаю приложение с помощью Level.FINE, оно регистрируется, затем переключается на Level.OFF, регистрация прекращается, но если я переключаюсь обратно на Level.FINE или Level.INFO, регистрация не происходит, пока служба не будет остановился.

Убедитесь, что у вас есть сильная ссылка на регистратор com.raytheon.mane.client. В вашем коде вы используете только локальные ссылки метода. Вам нужна хотя бы одна статическая окончательная ссылка на этот регистратор, чтобы предотвратить сборку мусора .

Также Windows будет задерживать запись байтов на диск (синхронизация против сброса) . Поведение, которое вы описываете, будет соответствовать FileHandler.close выполняет синхронизацию при завершении работы. В настоящее время единственный способ заставить FileHandler выполнить синхронизацию - это закрыть или повернуть. Возможно, вы просто не записали достаточно данных в журнал, чтобы синхронизировать окна с диском?

0
ответ дан jmehrens 3 March 2019 в 19:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: