Регистрация доступа к статическим файлам в консоли Eclipse в Google AppEngine DevServer

Возможно ли, чтобы сервер разработки AppEngine выводил быстрое сообщение журнала на консоль eclipse каждый раз, когда он обслуживает статический файл?

Например, если мой веб-сайт загружает «background.gif» (как статический файл из файловой системы), я хотел бы видеть строку вроде «Запрос GET для статического файла /war/resources/images/background.gif на 127.0.0. 0,1 дюйма отображаются в консоли Eclipse.

Может быть, есть переключатель командной строки для tomcat (сервер, который appengine использует локально)? Мне не удалось найти ничего подходящего здесь. .. Но я нашел документацию по "клапану журнала доступа ( ?!?) ", что может показаться многообещающим, но я не знаю, дает ли это то, что я ищу, и даже если да, то как я могу получить какой-либо потенциальный результат для отображения в консоли Eclipse.


person Markus A.    schedule 11.09.2014    source источник


Ответы (1)


Вы можете использовать фильтр сервлетов для перехвата всех запросов:

public class LoggingFilter implements Filter {

  private static final Logger log = Logger.getLogger(LoggingFilter.class.getName());

  @Override
  public void init(FilterConfig filterConfig) throws ServletException {
  } 

  @Override
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

    HttpServletRequest httpRequest = ((HttpServletRequest) request);
    log.info(httpRequest.getMethod() + " request for " + httpRequest.getRequestURI() + " from " + httpRequest.getRemoteAddr());
    request.getRequestDispatcher(httpRequest.getRequestURI()).forward(request, response);
  }

  @Override
  public void destroy() {
  }
}

Проблема только в том, что нельзя различать запросы статического и динамического содержимого. Для этого вы можете поместить весь статический контент в один каталог и сопоставить этот фильтр только с этим путем.

person Peter Knego    schedule 11.09.2014