Безопасное ведение журнала в Java
У меня (вероятно) странный вопрос о безопасном входе в систему в Java.
Допустим, у меня есть этот код в Java:
if (log.isDebugEnabled())
{
log.debug(...expression...);
}
Существует ли передовая практика ведения журнала
Например, я бы хотел, чтобы этот код не нарушал работу моего приложения:
if (log.isDebugEnabled())
{
log.debug("a divided by b is " + (a/b)); // throws an exception if b is zero
}
Очевидно, я могу написать свою собственную оболочку, использующую лямбда-функцию (что-то вроде wrapperLog.debug(()->"a, разделенное на b, равно " + (a/b)); но я хотел бы знать, есть ли лучший вариант практика для подобных ситуаций.
1 ответ
В целях безопасности не регистрируйте выражения или результаты вызова метода. Регистрируйте только простые переменные: примитивные типы или типы компонентов, созданные вашей IDE; в последнем случае не звониtoString()
явно.