log4j метка времени ConversionPattern с микросекундами - PullRequest
6 голосов
/ 04 декабря 2011

Я хочу добавить микросекунды в отметку времени каждой записи моих файлов журнала, созданных с помощью log4j, возможно ли это?

Я искал в официальной документации, но нет единиц измерения ниже миллисекунд.

Теперь у меня есть шаблон преобразования, подобный следующему:

%d{dd/MM/yyyy HH\:mm\:ss,SSS} %-5p [%t] - %m%n

в шаблоне преобразования даты (% d ), я хочу добавить микросекунд после значения в миллисекундах ( SSS ), есть ли способ сделать это?

Ответы [ 3 ]

6 голосов
/ 04 декабря 2011

Если вы хотите отобразить микросекунды, вам нужно добавить это самостоятельно. Это можно сделать с помощью специального средства форматирования (вместо PatternFormatter)

4 голосов
/ 22 марта 2018

Начиная с Java 9 и log4j 2.11.0 , можно получить временную метку даже с наносекундами.

Вот специальные предопределенные шаблоны, позволяющие получить дату или время с микросекундами или наносекундами:

  • Шаблон: %d{ABSOLUTE_MICROS} Пример вывода: 14:34:02,123456
  • Шаблон: %d{ABSOLUTE_NANOS} Пример вывода: 14:34:02,123456789
  • Шаблон: %d{DEFAULT_MICROS} Пример вывода: 2012-11-02 14:34:02,123456
  • Шаблон: %d{DEFAULT_NANOS} Пример вывода: 2012-11-02 14:34:02,123456789

Если вам нужен более конкретный шаблон, используйте шаблонную букву " nano-of-second " n вместо буквенного шаблона " долей секунды " S например %d{dd MMM yyyy HH:mm:ss,nnnn} to %d{dd MMM yyyy HH:mm:ss,nnnnnnnnn} даст 02 Nov 2012 14:34:02,1234 to 02 Nov 2012 14:34:02,123456789.

В вашем случае, поскольку вам нужны миллисекунды и микросекунды, ваш шаблон может выглядеть примерно так: %d{dd/MM/yyyy HH:mm:ss,nnnnnn}

Log4j 2.11 добавляет ограниченную поддержку временных меток, более точных, чем миллисекунды при работе на Java 9.

Для получения более подробной информации, пожалуйста, обратитесь к https://logging.apache.org/log4j/2.x/manual/layouts.html

2 голосов
/ 04 декабря 2011

он основан на SimpleDateFormat и не поддерживает форматы менее миллисекунды, поэтому о микросекундах не может быть сообщено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...