2014-09-23 2 views
3

로그 항목 자체에 로그 파일 이름을 포함해야한다는 요구 사항이 있습니다.Log4j의 로그 항목에 로그 파일 이름 포함

예를 들어 로그 파일의 최종 이름이 trx_log.2014-09-22-12-42 인 경우 로그를 인쇄 할 때 같은 이름을 사용해야합니다. 다음은 로그 항목의 예입니다.

123456|test value|xyz|trx_log.2014-09-22-12-42 

현재 Log4J DailyRollingFileAppender을 사용하여 로그를 인쇄하고 있습니다. 일부 log4j/logback 구성을 사용하여이 요구 사항을 구현할 수있는 방법이 있습니까?

+0

나는 사과드립니다. 하지만 왜? !!?!?! ??! 이것은 단지 공간 낭비 일뿐입니다 .... – Nahum

+0

trx_log.2014-09-22-12-42를 클래스의 로그 문에 추가하는 간단한 방법을 시도해보십시오. 이것은 prj에서 처음부터 로거를 구현하는 경우에 좋지만 다른 경우에는 변환 패턴을 구성 할 수있는 appender의 패턴 레이아웃을 확인할 수 있습니다. – vikeng21

+0

예 추가 파일 이름이 시간 낭비임을 알고 있습니다. 하지만 그것은 인쇄해야 할 CDR 로그의 요구 사항입니다. –

답변

0

아니요.

그럼에도 불구하고 해결책이 있습니다. DailyRollingFileAppender의 사용자 지정 확장 프로그램을 작성하십시오.

파일 이름은 사용자 정의 appender에서만 사용 가능합니다. 다른 appender에서 이러한 정보를 사용하려는 경우 (필자가 생각할 수있는 유일한 사용 사례) 공유 데이터 저장 장치 (공유 메모리, 파일 시스템, 데이터베이스 등)를 사용하여 방금 작성한 appender의 정적 멤버가되는 가장 간단한 솔루션을 제공합니다. 이 경우에는 새로운 정보를 로그 문에 추가하기 위해 다른 appender (즉, Console이라고도 함)를 확장해야합니다.

+0

나는 또한 RollingFileAppender를 확장하고 사용자 정의를 구현하려고 생각하고 있었다. 일부 구성을 통해 다른 방법이 있는지 확인하고 싶었습니다. –

-1

사용이 방법 logger.getName()

logger.log (임해서, + e.getMessage "예외"() + logger.getName());

+0

클래스 FQN 또는 로그 정보가 기록 될 파일 이름이 아닌 현재 로거의 이름을 지정하는 데 사용되는 다른 것을 인쇄합니다. 로거이며 appender에서만 사용할 수 있습니다. –

관련 문제