2016-02-10 31 views
3

我將我們的應用程序中的log4j版本從log4j 1.2.16升級到log4j 2.5。我們有很多依賴關係,所以我使用了migration documentation中描述的log4j 1.x網橋(log4j-1.2-api.jar)。它描述了用log4j-1.2-api.jar替換舊的log4j-1.2.16.jar。然而現在,當特定的依賴是在應用程序中引用啓動時,我得到這個消息:log4j 2遷移橋log4j-1.2-api.jar缺失類

拋出java.lang.ClassNotFoundException:org.apache.log4j.SimpleLayout定義

我看到log4j的這個類-1.2.16.jar,但不在log4j-1.2-api.jar中。

我該如何解決這個問題?這裏是我的一部分pom供參考:

<dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>1.6.1</version> 
     <exclusions> 
      <exclusion> 
       <artifactId>log4j</artifactId> 
       <groupId>log4j</groupId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-slf4j-impl</artifactId> 
     <version>2.5</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-api</artifactId> 
     <version>2.5</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-web</artifactId> 
     <version>2.5</version> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-core</artifactId> 
     <version>2.5</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-1.2-api</artifactId> 
     <version>2.5</version> 
    </dependency> 

回答

1

你可以發佈堆棧跟蹤嗎?有些東西指Log4j 1.x特定的佈局,它們在Log4j 2中不起作用。很可能有些東西正在以編程方式修改日誌記錄配置。該代碼必須轉換爲使用Log4j 2配置和/或API。