Запросить журнал в консоли для контейнера Jetty с помощью xsbt-web-plugin

Я использую xsbt-web-plugin для разработки веб-сервиса.

Для упрощения отладки я хотел бы включить журналы запросов в консоли, как в строке ниже.

[22/Dez/2012:15:29:56 +0000] "GET /messages HTTP/1.1" 200 27276

В производстве я использую NCSARequestLog, и это нормально, но в разработке я хотел бы включить журнал в свой sbt console, где я запустил контейнер через container:start/

Как я могу включить журналы запросов?


person magegu    schedule 22.12.2012    source источник


Ответы (1)


Чтобы включить журналы запросов, вы можете настроить NCSARequestLog с помощью пользовательского файла jetty.xml.

Добавьте это в build.sbt:

env in Compile := Some(file(".") / "jetty-env.xml" asFile)

Создайте myproject/jetty-env.xml:

<Configure class="org.eclipse.jetty.webapp.WebAppContext">

  <Set name="handler">
    <New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler">
      <Set name="requestLog">
        <New id="RequestLogImpl" class="org.eclipse.jetty.server.NCSARequestLog">
          <Set name="filename"><Property name="jetty.logs" default="./logs"/>/test-yyyy_mm_dd.request.log</Set>
          <Set name="filenameDateFormat">yyyy_MM_dd</Set>
          <Set name="LogTimeZone">GMT</Set>
          <Set name="retainDays">90</Set>
          <Set name="append">true</Set>
        </New>
      </Set>
    </New>
  </Set>

</Configure>

В sbt запустите container:start, и вы увидите журналы запросов, собранные в разделе myproject/logs. Когда я тестировал это, Jetty не создавал каталог logs самостоятельно — мне пришлось сделать это самому.

Вы можете просмотреть журнал запросов в режиме реального времени с помощью tail:

tail -f myproject/logs/test-2013_08_23.request.log

Полный пример см. в разделе запрос-логгирование. ветка xwp-шаблона.

person earldouglas    schedule 23.08.2013