2013-09-12 7 views
2

Я хотел бы отформатировать информацию о часовом поясе в сообщениях log4j в формате «+ hh: mm», чтобы полная временная метка выглядела так: 2013-09-05T09: 32: 10.703 + 02: 00log4j: форматирование часового пояса

Я знаю, что формат даты спецификатор «Z», но выходной формат «+ ччмм» (двоеточие отсутствует): 2013-09-10T15: 55: 34,123 + 0200

есть ли способ получить то, что я хочу?

+0

Загрузите свой файл log4j.xml или log4j.properties –

ответ

7

использует следующую закономерность:

yyyy-MM-dd'T'HH:mm:ss.SSSXXX 

В Javadoc из java.text.SimpleDateFormat, вы можете прочитать, что (для X буквы):

ISO 8601 Временная зона: Количество шаблона буквы обозначают формат как для форматирования, так и для разбора следующим образом:

ISO8601TimeZone: 
     OneLetterISO8601TimeZone 
     TwoLetterISO8601TimeZone 
     ThreeLetterISO8601TimeZone 
OneLetterISO8601TimeZone: 
     Sign TwoDigitHours 
     Z 
TwoLetterISO8601TimeZone: 
     Sign TwoDigitHours Minutes 
     Z 
ThreeLetterISO8601TimeZone: 
     Sign TwoDigitHours : Minutes 
     Z 

, например.

X  -08; 
XX  -0800; 
XXX  -08:00 

Если ваш конфигурационный файл является log4j.xml, может быть следующим:

<!-- console --> 
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> 
    <param name="threshold" value="TRACE" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="conversionPattern" 
      value="%d{yyyy-MM-dd'T'hh:mm:ss.SSSXXX} %-5p (%c.java:%L).%M - %m%n" /> 
    </layout> 
</appender> 

И если у вас есть класс Java с:

import org.apache.log4j.Logger; 

public class Main { 
    private static final Logger LOGGER = Logger.getLogger(Main.class); 

    public static void main(String[] args) { 
     LOGGER.info("Test"); 
    } 
} 

Выход в следует:

2013-09-12T08:08:18.532-05:00 INFO (Main.java:8).main - Test 
+0

Спасибо за быстрый ответ. Я только что нашел веб-страницу, документирующую SimpleDateFormat для версии 1.4.2, и там «X» еще не был поддержан. И, к сожалению, мы используем Java 6, а также «X» еще не поддерживается. – user2772501

+0

Привет, Пол, yyyy-MM-dd'T'hh: mm: ss.SSSXXX использует часовой пояс UTC? –

+0

Привет, @SumalathaAbhishek Nope. Это только для формата. –

Смежные вопросы