2011-01-12 4 views
11

여러 줄 텍스트 "a \ nb \ nc"가 있다고 가정하십시오. 예를 들어 "debug"메소드를 사용하여 로그 할 때 하나의 로그 만 얻습니다.여러 줄 텍스트에 대한 줄당 로그 표시

이 예상되는 동작하지만, 그 선을 제외하면 먼저 출력 남아 너무 표시 :

1234 [1] [DEBUG] Test - a 
b 
c 
1235 [1] [DEBUG] Test - ... 

간단한 해결 방법은 수득 라인 당 하나의 로그를 생성하는 것이다

1234 [1] [DEBUG] Test - a 
1235 [1] [DEBUG] Test - b 
1236 [1] [DEBUG] Test - c 
1237 [1] [DEBUG] Test - ... 

_

자동 처리 또는 내가 이것을 관리 할 수있는 간단한 래퍼를 작성해야 이런 종류의를 갖는 방법이 있나요 설정?

_ 사전에

감사합니다.

+1

나는 그것이 가능하지 않다고 생각합니다. 래퍼를 작성하면 (자), 래퍼는'\ n'에 분할 해,'logger.log'를 줄 수만큼 호출합니다. 나 좋지 않아. – Nishant

+0

@Nishant : 문제를 검토해 주셔서 감사합니다. 래퍼 (wrapper)는 현재의 appender 유형을 상속 받거나 모든 appender를 래핑 할 수있는 제네릭 데코레이터가 될 수 있습니다. XML 구성 파일에서 이런 종류의 구조를 표현하는 방법에 대해 궁금합니다. 당신의 대답에 대해 – Pragmateek

답변

8

불가능하고 권장하지 않습니다.

첫 번째 예제에서는 두 개의 로그 문이 있지만 두 번째 예제에서는 네 가지 예가 하나씩 있다는 것을 알 수 있습니다.

하나의 로그 문은 일어난 일과 발생시기에 대한 단일 소스 정보를 제공해야하며 그 정보는 어떤 방식 으로든 유용해야합니다.

예외와 같이 스택 추적으로 인해 30 줄 정도의 오류 문이 있다고 가정 해보십시오. 귀하의 경우 30 개의 오류가있는 것으로 보이며 자동화 된 도구는이를 30 개의 오류로보고 할 수도 있습니다. 이것은 잘못된 정보이므로 피해야합니다.

"하나의 로그 문! = 하나의 기록 된 로그"는 더 복잡한 로깅 상황을 처리 할 때 동기화 오류의 원인이 될 수 있습니다. 동시에 여러 스레드가 같은 파일에 쓰거나 더 나쁜 경우 여러 개의 JVM 그렇게.

"너무 멀리 왼쪽에"물건을 당신에게 많은 슬픔을주고 있다면, 나는 8 라인을 추가하거나 생성하지 않은 모든 라인의 시작 부분에 로그 파일 생성과 같은 포스트 프로세싱을하는 것이 좋습니다. [DEBUG], [INFO], ...을 포함하고 있습니다.

+0

감사합니다; 실제로 도구 사용에 대한 귀하의 주장에 동의합니다. 그것이 나의 연습이 아니라고 생각했다. 좋은 연습이 아닌 것 같다. – Pragmateek

관련 문제