2012-02-28 2 views
6

javadoc에서 PatternLayout을 확인하는 동안 대신 EnhancedPatternLayout을 사용하는 것이 좋습니다. 그러나, 그것은 거의 똑같은 일을하는 것처럼 보입니다.EnhancedPatternLayout과 PatternLayout의 주요 차이점은 무엇입니까?

주요 차이점은 무엇입니까? 특히 내가 알아야 할 사항은 무엇입니까? 그들은 오히려 원래의 클래스를 향상보다는 별도의 클래스를 만든 이유

것은 나 또한 궁금하네요. 구문의 차이점이 있습니까?

+1

적어도 하나 개의 큰 차이는 시간 영역에 대한 지원 인 - http://stackoverflow.com/questions/1785725/specify-time-zone-of-log4js-date 참조. – B5A7

답변

3

확인은 documentation, 모든 것을 설명한다. EnhancedPatternLayoutPatternLayout의 향상된 버전입니다. PatternLayout보다 우선해야합니다 (호환성 이유는 PatternLayout 제외).

PatternLayout

특히 동기화 EnhancedPatternLayout에없는 몇 가지 문제가 포함되어 있습니다. PatternLayout을 반면 StringBuffer를 문자열로 결과를 포맷으로

+5

나는이 문서를 이미 확인했기 때문에이 질문을 정확하게했으며 아무 것도 설명하지 않았다. 예, 향상되었습니다. 그 이름에서 볼 수는 있지만, ** ** 어떻게 향상 되었습니까? – aditsu

+0

그렇다면 EnhancedPatternLayout은 내부적으로 만 변경되었지만 ** 동일한 방식으로 ** 사용됩니다. – aditsu

+1

거의,'EnhancedPatternLayout'에는 패턴 라이 아웃에서 사용할 수없는 몇 가지 추가 변환 문자가 있습니다. 그렇지 않으면 같은 것 같습니다. 저는 Java 전문가가 아니므로 두 가지 문서 페이지 및/또는 출처를 비교하여 직접 확인할 수 있습니다. – cago

0

EnhancedPatternLayout 그 결과를 포맷.

0

PatternLayoutEnhancedPatternLayout과의 주요 차이점은 형태() 메소드이다. PatternLayout은 수정 된 멤버 필드 sbuf에 의존하지만, EnhancedPatternLayout은 StringBuffer의 전용 인스턴스를 사용합니다. 즉, 동시 호출 중에는 PatternLayout.format() 호출이 데이터 경합에 취약하고 동시에 EnhancedPatternLayout.format() 호출은 그렇지 않습니다.

관련 문제