2012-05-21 2 views
1

Groovy/log4j/우분투 (Groovy 1.7.10 사용)에서 작동하는 Hello World 응용 프로그램을 얻으려고합니다. 기본적으로, 나는 콘솔에 출력을 얻지 못한다 :log4j는 우분투의 groovy에 아무 것도 인쇄하지 않습니다.

  • ~/.groovy/lib가 생성되고 거기에 최신 log4j jar 파일이 다운로드된다.
  • 만든 a.groovy :

고양이 a.groovy :

#! /usr/bin/groovy 
import org.apache.log4j.Logger 
def log = Logger.getLogger(getClass()) 

println "Log starting" 
log.info("This is Info") 
log.error("This is error") 
println "Log finished" 

그것에게 권한을주고 그것을 실행하고있어 :

Log starting 
Log finished 

가 기본 설정이 생성되지해야 콘솔 appender 및 출력 콘솔?

this answer에 따라 org.apache.log4j.BasicConfigurator.configure();에 전화를 걸었지만 아무 것도 변경되지 않았습니다.

이 시도 ... 그것은 INFO 메시지를 표시하도록

+0

getClass()가 조금 이상하다고 생각합니다 ... 실제로 클래스가 아닌 일회용 스크립트를 작성하고 있습니다. –

답변

4

당신은 레벨을 설정해야합니다

#! /usr/bin/groovy 

// Grab Log4j 
@Grab('log4j:log4j:1.2.16') 
import org.apache.log4j.Level 
import org.apache.log4j.Logger 

def log = Logger.getLogger(getClass()) 

Logger.rootLogger.level = Level.INFO 

println "Log starting" 
log.info "This is Info" 
log.error "This is error" 
println "Log finished" 

blog post here 내가 그 프로그래밍 방식의 log4j

또는 설정을 보여줍니다 찾을 수있다, sreejith says으로, 클래스 경로에 log4j 특성 파일을 추가하십시오 (또는로드하십시오)

defau LT 루트 펜더, 당신은 할 수 있습니다 :

@Grab('log4j:log4j:1.2.16') 
import org.apache.log4j.Level 
import org.apache.log4j.ConsoleAppender 
import org.apache.log4j.PatternLayout 
import org.apache.log4j.Logger 
def log = Logger.getLogger(getClass()) 

Logger.rootLogger.with { 
    level = Level.INFO 
    removeAllAppenders() 
    addAppender(new ConsoleAppender(new PatternLayout('%d %-5p [%t]: %m%n'))) 
} 

println "Log starting" 
log.info "This is Info" 
log.error "This is error" 
println "Log finished" 

인쇄하기 :

2012-05-21 11:48:48,225 INFO [Thread-29]: This is Info 

서로 다른 패턴 기호 can be found here

+0

와우, @Grab은 굉장합니다! 그리고 답은 잘됩니다. – ripper234

+0

그동안 우리는 콘솔 appender의 변환 패턴을 날짜/시간을 포함하도록 구성하는 방법에 대한 간단한 스 니펫을 가지고 있습니까? – ripper234

+1

@ ripper234가 답변을 정보에 추가했습니다. –

1

설정 log4j.rootCategory = 다음 내용을 포함하는 파일을 작성하십시오 정보, 표준 출력

log4j.appender.stdout = org.apach e.log4j.ConsoleAppender log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern = % d {절대 값} % 5p % 40.40c : % 4L - % m % n

프로젝트의 클래스 경로에 추가하십시오.

관련 문제