2012-08-07 8 views
5

java에서는 빈 줄을 인쇄하기 위해 System.out.println()을 사용할 수 있지만 logfile에서 log4j와 어떻게 작동합니까? 거기에 하나 이상의 빈 줄이 로그 파일 안에 있어야합니다. log4j how to append blank lineLog4J는 빈 줄을 로그 파일에 인쇄합니다

그러나

logger.debug("\n"); 
logger.debug(""); 

당신이 (등등의 레이아웃을 시간과 같은 메시지하지만 다른 정보를 인쇄하지 않기 때문에이 정말 도움이되지 않습니다 :

나는 이미 follwing을 읽어 로거)는 여전히 로그 파일 내에 저장됩니다. 그러나 나는 단지 전체 빈 줄을 갖고 싶다. 아무도 도와 줄 수 있습니까?

답변

8

Log4j는 빈 줄을 쓰도록 설계되지 않았습니다.

로거에서이 옵션을 찾을 수 없습니다. 로거는 파일이나 콘솔 또는 다른 것으로 기록하는 그의 appender와 독립적이기 때문입니다.

필자는 작성하기 전에 로깅 메시지를 확인하는 사용자 지정 FileAppender를 만들어야한다고 생각합니다. message.equals("\n"); 자신의 파일에 액세스하여 레이아웃이없는 빈 줄을 추가하고 레이아웃과 함께 일반적인 로깅을 건너 뜁니다. 사용할 수 있습니다 Logger.debug("\n");

또한 빈 줄을 추가하는 것은 나쁜 습관입니다. 로그 메시지를 여러 줄로 나누는 것과 비슷합니다. 각각의 LogMessage를 한 줄씩 입력해야하므로 chainsaw 또는 OtrosLogViewer과 같은 LogViewer-Tools를 쉽게 파싱 할 수 있습니다. 한 가지 예외는 스택 추적입니다.

2

빈 레이아웃과 그 appender를 사용하는 로거를 사용하여 자신의 appender를 만듭니다. 그런 다음 해당 로거를 사용하여 빈 줄을 작성하십시오. logger에 대한 additivity 속성을 false로 설정하여 루트 로거가 appender의 형식을 사용하여 메시지를 작성하지 않도록하십시오.

관련 문제