2012-08-13 6 views
0

JMSAppender를 사용하여 로깅 이벤트를 보내고 있습니다. Receiver에 내가 그들을 인쇄해야/파일에 넣어 - 형식으로 날짜 :LoggingEvent에서 ISO 형식으로 시간을 얻으려면 어떻게해야합니까?

yyyy-MM-dd HH:mm:ss,SSS 

하지만 난 단지 long을 반환 event.getTimeStamp() 할 수 있습니다.

이벤트를 로깅에서 ISO 형식으로 날짜를 얻을 수있는 방법이 있나요 (나는 우리가 밀리 초 단위로 현재 시간을 로그인 할 수 %d 사용하기 때문에 일반 로깅에, 이상한 찾기)?

+0

http://stackoverflow.com/questions/905666/how-to-format-to-a-specific-pattern-with-log4j?rq=1 – adarshr

+0

@adarshr 'properties' 파일에서 설정할 수 없습니다. JMSAppender를 사용하고 ** 이벤트 **를 보내고 있습니다. – alicjasalamon

답변

1

는 당신이 시도 할 수이

DateFormat dformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss,SSS"); 
String dateString = dformat.format(new Date(event.getTimeStamp()); 
System.out.println(dateString); 
+0

나는 그것을 시도했다, 그것은 작동한다, 고마워! 시간이 오래 걸리나요? (많은 로그가있는 경우 문제가 될 수 있습니다.) – alicjasalamon

+0

DataFormat을 한 번 초기화하고 다시 사용하도록 설정할 수 있습니다. 하지만 확실하지 않습니다. 아마도 스레드로부터 안전하지는 않습니다. 그러면 로깅을 위해 몇 개의 스레드가 있습니까? 혹시 로깅을 위해 풀링 된 스레드가 mutiple 인 경우에는 DataFormat을 ThreadLocal Variable으로 정의하고 진행할 수 있습니다. 어떻게 사용 하느냐에 달려 있습니다. –

+0

제 아이디어는 분산 시스템에서 JMSAppender가 보낸 일부 로그를 수집하여/database/console/log 뷰어 파일로 전달하는 것입니다. 아마도 밀리 초 단위로 날짜를 저장할 수 있지만 내 로그 뷰어 (ChainSaw)는이 형식을 처리 할 수 ​​없습니다. – alicjasalamon

관련 문제