Поскольку почти все случаи, в зависимости от библиотеки или метапрограммирования для депрекации являются излишеством. Просто добавьте комментарий к rdoc и звоните Kernel#warn
метод. Например:
class Foo
# DEPRECATED: Please use useful instead.
def useless
warn "[DEPRECATION] `useless` is deprecated. Please use `useful` instead."
useful
end
def useful
# ...
end
end
, Если Вы используете Двор вместо rdoc, Ваш комментарий документа должен быть похожим на это:
# @deprecated Please use {#useful} instead
Наконец, если Вы придерживаетесь tomdoc, заставляют Ваш комментарий быть похожим на это:
# Deprecated: Please use `useful` instead
Устаревший: Указывает, что метод удерживается от использования и будет удален в будущей версии. НЕОБХОДИМО использовать это для методов документа, которые были Открыты, но будут удалены в следующей основной версии.
кроме того, не забывают удалять устаревший метод в некотором будущем (и правильно semver 'd) выпуск . Не делайте те же ошибки, которые сделали библиотеки Java.
Я нашел решение. Добавив фильтр ответов и обернув chain.doFilter (req, resp) следующим образом:
try {
chain.doFilter(req,resp);
} catch (Exception e) {
logger.error("", e);
throw new RuntimeException(e);
}
Пока это работает нормально и не зависит от конкретной платформы или сервера приложений.
Я ничего не знаю о Servlet API, чтобы выполнить это.
Однако это можно сделать в Tomcat с помощью прослушивателя экземпляра. Вы можете установить прослушиватель в context.xml следующим образом:
<InstanceListener>myapp.MyListener</InstanceListener>
Tomcat запускает событие InstanceEvent.AFTER_SERVICE_EVENT
сразу после того, как контейнер перехватывает исключение и прежде, чем он снова вызовет исключение. Вы можете сразу же вызвать регистратор.
Поправьте меня если я ошибаюсь, но объект "исключение" присутствует как переменная ... называется "исключение" в вашем jsp-файле "error". Вы всегда можете использовать этот объект для регистрации в журнале информации об исключении и входа в саму ошибку jsp.
AOP (Аспектно-ориентированное программирование) было бы моим первым выбором.
Вы определяете:
Взгляните на http://www.aspectj.org/