2014-10-29 34 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

相关问题