2014-10-29 73 views
0

所以我剛剛下載了Spring Tool Suite,創建了一個新的Maven項目,並且對如何將Log4j集成到我的項目中感到困惑。如何將log4j 2集成到我的Spring項目中?

這裏是我的項目結構和類,我正在嘗試創建一個記錄器。請注意,這些導入沒有列在LoggerFactory的工作下 - 每次我選擇一個它說LoggerFactory.getLogger cannot be resolved to a type

enter image description here

這裏是我的pom.xml文件:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>org.test</groupId> 
    <artifactId>demo</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>demo</name> 
    <description>Demo project for Spring Boot</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.1.8.RELEASE</version> 
     <relativePath/> <!-- lookup parent from repository --> 
    </parent> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>4.1.1.RELEASE</version> 
      <scope>runtime</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>4.1.1.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-api</artifactId> 
      <version>2.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-core</artifactId> 
      <version>2.1</version> 
     </dependency> 
     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.17</version> 
     </dependency> 
    </dependencies> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <start-class>demo.Application</start-class> 
     <java.version>1.7</java.version> 
    </properties> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

我該如何解決這個問題?

+0

使用Logger.getLogger(this.class);得到一個記錄器實例,我不認爲你需要loggerfactory – 2014-10-29 05:57:35

+0

好吧,我試過了,現在得到這個:'Logger.getLogger不能解析爲類型' – Tylerlee12 2014-10-29 06:01:54

回答

0

建立和安裝你的項目,你已經在你的pom.xml

作出了Log4j的一個條目後,從你的pom.xml刪除這些條目的log4j

<dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-api</artifactId> 
     <version>2.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-core</artifactId> 
     <version>2.1</version> 
    </dependency> 

而且,只有一個單一的入口就足夠了在你的POM的log4j

也總是引用Log4j的,如下面類

private final static Logger LOGGER = Logger 
.getLogger(classname.class.getName()); 
+0

這個工程!它看起來像我做錯了唯一的事情是我有'私有靜態最終記錄器記錄器=新Logger.getLogger(MockMailSender.class);'而不是'私人最終靜態記錄器LOGGER =記錄器 .getLogger(MockMailSender.class.getName ());'。你能解釋爲什麼我做錯了嗎? – Tylerlee12 2014-10-29 06:08:16

+0

如果問題解決了,Plese接受答案。 – vikeng21 2014-10-29 06:08:51

+0

我的歉意,只是接受它。你能向我解釋爲什麼你的方法是正確的嗎?我對Spring和Maven都很陌生,我覺得更多的解釋對我很有用 – Tylerlee12 2014-10-29 06:10:03

相關問題