2017-05-11 18 views
0

org.slf4j 및 ch.qos.logback을 사용하여 내 osgi 응용 프로그램을 로그하고 Eclipse Equinox 환경에서 실행합니다. 모든 것이 잘 작동합니다. SLF4J 플러그인은 다음과 같은 기능 파일에 한 번 선언 :TYCHO maven 빌드가 두 개의 다른 org.slf4j.api 버전을 포함합니다.

<plugin 
     id="org.slf4j.api" 
     download-size="0" 
     install-size="0" 
     version="0.0.0" 
     unpack="false"/> 

나는 이클립스 디버거에서 응용 프로그램을 실행하거나, 내가 일식 제품 내보내기 기능에서 응용 프로그램을 내보낼 때, 내 로그는 제대로 때 logback.xml을 사용하여 적절히 처리합니다. 나는 MyApp를/플러그인 폴더에서 볼 때

, 나는이 2 개 개의 단지를 찾을 : - org.slf4j.api_1.7.2.v20121108-1250.jar - 을 org.slf4j.log4j_1.7.2.v20130115-1340.jar 내가 티코와 MAVEN하여 응용 프로그램을 빌드 할 때

그러나, 나는 MyApp를/플러그인/폴더에 org.slf4j.api의 2 가지 버전을 찾을 수 :

  • org.slf4j.api_1.7.2을 .v20121108-1250.jar
  • org.slf4j.ap I는 애플리케이션을 실행할 때, 결과적으로 i_1.7.10.v20160921-1923.jar
  • org.slf4j.log4j_1.7.2.v20130115-1340.jar

은 다음 메시지가 표시된다 :

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". 
SLF4J: Defaulting to no-operation (NOP) logger implementation 
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. 
osgi> log4j:WARN No appenders could be found for logger (org.quartz.impl.StdSchedulerFactory). 
log4j:WARN Please initialize the log4j system properly. 

org.slf4j.api_1.7.10 jar가 빌드에 포함되어 로깅 메커니즘이 중단 된 것처럼 보입니다.

내 자동 빌드가 손상됩니다.

도와주세요.

감사합니다.

편집 대상 파일을 사용하고 있지 않습니다.

<repositories> 
     <repository> 
      <id>eclipse</id> 
      <url>http://download.eclipse.org/releases/neon</url> 
      <layout>p2</layout> 
     </repository> 
     <repository> 
      <id>orbit</id> 
      <url>http://download.eclipse.org/tools/orbit/downloads/drops/R20160520211859/repository/</url> 
      <layout>p2</layout> 
     </repository> 

답변

0

루트 문제는 제품이 (나는 그것이 기능 기반 제품의 가정) org.slf4j.api 버전에서 끌어 기능이 포함되어 있습니다 : 은 주 치어 파일에서, 나는이 명 저장소를 설정 한 1.7.2 및 1.7.10을 가져 오는 또 다른 기능. (글쎄, 이론적으로 같은 기능을 할 수 황소,하지만 그건 드문. 두 버전)

빌드 귀하의 티코에 .target 정의 파일을 사용하는 경우, 식별에서 나는 좋은 첫 촬영 방법에 org.slf4j.api 말까지 두 가지 버전의 사용자 대상 플랫폼이 대상 편집기에서 파일을 열고 내용 탭으로 전환하고 그룹을위치으로 선택하여 파일을 엽니 다. 이것은 어떤 업데이트 사이트 org.slf4j.api 1.7.10이 제공되는지 알려주지 만 (정확한 기능은 아닙니다). 기능을 좁히는 경우 문제가되는 org.slf4j.api 번들이 포함되지 않은 대체품을 검색해 볼 수 있습니다.

+0

안녕하십니까, 답변을 주셔서 감사합니다.하지만 타겟 파일을 사용하고 있지는 않지만, 내 게시물의 최신 편집에 설명 된대로 P2 보관소를 사용하고 있습니다. – Bepeho

+0

알았습니다. 당신의 eclipse 저장소는 버전 1.7.2와 1.7.10 둘 다에'org.slf4j.api'를 포함하고 있습니다. (팁 : 이것을 직접 확인하려면 * 저장소 탐색기 *보기로 가서 * 전문가 모드 *를 검색하고 org.slf4j.api라는 이름의 * osgi.bundle). 대부분의 경우 해당 사이트에서 사용할 수있는 기능은 제품에서 다시 사용되며 버전 1.7.10이 필요합니다. 어떤 기능이 귀하의 제품에 있습니까? (.'product' 파일을 텍스트 편집기에서 열고 관련 부분을 여기에 붙여 넣을 수 있습니다.) –

0

문제가 어디에 나는 마침내 찾은이 :

P2 저장소는 혼합 위험성이다. URL을 동기화 했으므로 이제는 정상입니다.

<repositories> 
     <repository> 
      <id>eclipse</id> 
      <url>http://download.eclipse.org/releases/neon</url> 
      <layout>p2</layout> 
     </repository> 
     <repository> 
      <id>orbit</id> 
      <url>http://download.eclipse.org/tools/orbit/R-builds/R20170307180635/repository/</url> 
      <layout>p2</layout> 
     </repository> 
    </repositories> 

@ 사과단 : 도와 주셔서 감사합니다.