2011-12-12 4 views
6

다양한 유형의 로그 (사용자, 응용 프로그램 등 ...)가있는 응용 프로그램 로그를위한 솔루션을 만들고 각 유형의 로그를 별도의 파일에 저장하려고했습니다.log4j를 사용하는 다중 로그 파일

이것은 log4j 또는 다른 API에서 가능합니까? 어떻게 할 수 있습니까?

재미 있다고 생각하면 질문을 편집하고 코드를 넣지 만 가치가 있다고 생각하지는 않지만 여전히 매우 기본입니다.

미리 감사드립니다.

+0

로깅 다양한 종류의 무엇을 의미합니까? 로그 레벨 (DEBUG, INFO, WARN ...) 또는 로그 코드가 발생하는 다른 클래스 또는 코드를 통해 실행되는 사용자에 따라 다른 로그 파일을 원 하시겠습니까? 아니면 스레드에 따라 다르게할까요? 이름? –

+1

[duplicate-multiple-content-with-log4j]의 가능한 복제본 (http://stackoverflow.com/questions/728295/creating-multiple-log-files-of-different-content- with-log4j) –

+0

@olly_uk 나는 그것이 중복이 아니라고 생각한다. – caarlos0

답변

22

, 인터넷에서 다른 FileAppenders에게 예를 사용 : 로그인 당신이 Logger.getLogger("com.vaannila.admin").log("To admin log")을 admin.log에 로그인 할 수 있습니다

이제
log4j.rootLogger=DEBUG 

# AdminFileAppender - used to log messages in the admin.log file. 
log4j.appender.AdminFileAppender=org.apache.log4j.FileAppender 

log4j.appender.AdminFileAppender.File=admin.log 

log4j.appender.AdminFileAppender.layout=org.apache.log4j.PatternLayout 
log4j.appender.AdminFileAppender.layout.ConversionPattern= %-4r [%t] %-5p %c %x - %m%n 

# ReportFileAppender - used to log messages in the report.log file. 
log4j.appender.ReportFileAppender=org.apache.log4j.FileAppender 

log4j.appender.ReportFileAppender.File=report.log 

log4j.appender.ReportFileAppender.layout=org.apache.log4j.PatternLayout 
log4j.appender.ReportFileAppender.layout.ConversionPattern= %-4r [%t] %-5p %c %x - %m%n 

log4j.logger.com.vaannila.admin=WARN,AdminFileAppender 
log4j.logger.com.vaannila.report=DEBUG,ReportFileAppender 

및보고 Logger.getLogger("com.vaannila.report").log("To report log")

+0

"Logger.getLogger ("com.vaannila.admin ") .log ("관리 로그로 ")"부분을 이해하지 못합니다. log4j는 AdminFileAppender를 기록하려고합니다. 나는 여기 비슷한 것을 시도하지만 작동하지 않는다 ... – caarlos0

+1

log4j.logger.com.vaannila.admin' = WARN, AdminFileAppender이 속성은'com.vaannila.admin' 또는 'com.vaannila.admin.xxx.yyy.zzz' 그러면 AdminFileAppender (FileAppender와 'admin.log'파일)를 사용하십시오. – korifey

+0

음, 이제 작동합니다. 고마워요, 코피, 신의 축복이 있습니다. – caarlos0

2

Log4j는 로거 및 애펜더를 제공합니다. 이 작업을 수행하는 방법은 원하는 각 파일에 대한 Appender를 갖는 것입니다. 그들은 적합한 Appender (들)을 가리키는 적절한 로거 세트를 설정합니다. 로거는 일반적으로 패키지 이름을 사용하여 설정됩니다. 이것이 당신을 위해 작동한다면, x 패키지의 코드는 y 파일로 간다. 그렇지 않으면 출력 파일 당 로거를 작성하고 코드에서 해당 로거를 선택하게하십시오. 로거 (Logger)를 사용하여 정보를 여러 애펜더에게 보낼 수도 있으므로 적절하게 설정할 수 있습니다.

설정 방법에 대한 예는 korifey의 게시물을 참조하십시오. cource의

관련 문제