2014-10-29 2 views
0

방금 ​​Spring Tool Suite를 다운로드하고 새로운 Maven 프로젝트를 만들었으며 Log4j를 내 프로젝트에 통합하는 방법을 혼동했습니다.log4j 2를 Spring 프로젝트에 통합하는 방법은 무엇입니까?

내 프로젝트 구조와 로거를 만들려는 클래스가 있습니다. LoggerFactory 아래에 나열된 가져 오기 중 아무 것도 선택하지 않을 때마다 - LoggerFactory.getLogger cannot be resolved to a type이라고 말하면됩니다. 나는이 문제를 해결하려면 어떻게

<?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> 

:

enter image description here

그리고 여기 내 pom.xml 파일입니까?

+0

Logger.getLogger (this.class) 사용; 로거 인스턴스를 얻으려면 loggerfactory가 필요 없다고 생각합니다. –

+0

알았습니다. 이제 시도해 보았습니다. 'Logger.getLogger를 유형으로 해결할 수 없습니다.' – Tylerlee12

답변

0

빌드 및

<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.xml에 당신이 당신의 pom.xml에서 log4j에 대한 이러한 항목을 제거하여 Log4j에 대한 항목을 만든 후 프로젝트 설치 당신의 치어에서 log4j에 대한

또한 항상 수업 시간에 다음과 같이 Log4j를 참조

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

이 작업이 가능합니다! 'private static final Logger logger = Logger .getLogger (MockMailSender.class.getName)보다는'private static final Logger logger = 새로운 Logger.getLogger (MockMailSender.class);를 사용하는 것이 잘못된 것 같습니다.());'. 내가 왜 그렇게했는지 설명 할 수 있니? – Tylerlee12

+0

Plese는 문제가 해결되면 대답을 수락합니다. – vikeng21

+0

사과 해 주셔서 감사합니다. 당신의 방식이 옳은 이유를 제게 설명해 주시겠습니까? 저는 Spring과 Maven을 처음 접했고 더 많은 설명이 유용 할 것 같습니다. – Tylerlee12

관련 문제