2013-04-09 4 views
0

Log4J가 활성화 된 상태에서 Heroku에 Java 기반 응용 프로그램을 배포 할 수 있습니까? 자신의 docs에 따르면heroku가 Log4J와 함께 배포

아무것도 표준 출력 (표준 출력) 또는 표준 오류 (stderr에) 에 기록하는 것은 당신의 로그에 캡처됩니다. 즉 간단한 출력 문을 사용하여 애플리케이션 코드에서 어디에서나 로그 할 수 있습니다.

자바에서
puts "Hello, logs!" 

:

그것은 정말 당신이 원하는 (또는 무엇을 펜더 로그의 종류에 따라 달라집니다
System.err.println("Hello, logs!"); 
System.out.println("Hello, logs!"); 

답변

1

'루비에서

, 당신은 같은 것을 사용할 수 있습니다 다시 사용하려고합니다.) Heroku의 ephemeral filesystem으로 인해 file appender가 쓸모 없게됩니다. 나는 또한 stdout에 추가하는 것은 당신이 준 이유 때문에 Heroku 로그에도 출력한다고 가정합니다. https://devcenter.heroku.com/articles/airbrake#java

편집 :

여기 애드온 에어 브레이크라는 Log4J를위한 펜더 역할에 Heroku가의 의사 인 내가 표준 출력에 로깅을 테스트 한, 그것은 실제로 Heroku가 로그에 기록 않습니다.

log4j.properties 관심 (꽤 표준) 인 경우 : 지적

log4j.rootLogger= error, stdout 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Target=System.out 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%p @ %l > %m%n 
+0

가치 : Heroku가 구체적으로 표준 출력에 로그 아웃 호출에 "12 요소"디자인을 준수하는 응용 프로그램을 권장합니다 (HTTP ://12factor.net/logs). 서버와 서비스 전반에서 로그 정보를 단일 스트림으로 집계하는 것이 더 쉬운 방법이라는 아이디어가 있습니다. – bimsapi