Как установить язык регистрации и время ожидания для AsyncNCSARequestLog - PullRequest
1 голос
/ 30 октября 2019

Хотя AsyncNCSARequestLog устарело, я должен заменить его на CustomRequestLog.

Код:

AsyncNCSARequestLog log = new AsyncNCSARequestLog(filename);
log.setAppend(true);
log.setLogLatency(true);
log.setRetainDays(retainDays);
log.setLogLocale(Locale.ENGLISH);

Предполагается:

AsyncRequestLogWriter writer = new AsyncRequestLogWriter(filename, new BlockingArrayQueue<>(size));
writer.setAppend(true);
writer.setRetainDays(retainDays);
CustomRequestLog log = new CustomRequestLog(writer, CustomRequestLog.EXTENDED_NCSA_FORMAT);

Но нет возможности установить языковой стандарт и время ожидания для CustomRequestLog или AsyncRequestLogWriter. Как их установить?

ОБНОВЛЕНО:

Следующие настройки пропали:

AsyncNCSARequestLog log = new AsyncNCSARequestLog(filename, new BlockingArrayQueue<>());
log.setLogDateFormat(format);
log.setExtended(true);
log.setLogLocale(Locale.ENGLISH);
log.setLogCookies(true);
log.setLogLatency(true);
log.setLogServer(true);

1 Ответ

1 голос
/ 30 октября 2019

Все это задокументировано в apidocs для CustomRequestLog .

Локаль используется только для представления "времени".

Это указано в параметре формата.

См .: %{format|timeZone|locale}t

Задержка также является параметром формата.

См .:

  • %D для задержки в микросекундах
  • %T для задержки в секундах
  • %{UNIT}T для задержки в выбранной вами единице измерения
    • %msT - это миллисекунды
    • %usT - это микросекунды
    • %sT - секунды

Вы захотите использовать параметр нестандартного формата, а не предопределенный стандартный формат CustomRequestLog.EXTENDED_NCSA_FORMAT (который никогда не имеет задержкии всегда использует Locale.getDefault() для представления времени)

...