2010-12-10 6 views
2

새 독립 실행 형 응용 프로그램을 설치하고 log4j를 사용하려고합니다. Netbeans (6.5)에서 Maven을 사용하고 있고 log4j jar/dependency를 추가 할 수 있었지만 log4j.xml 파일을 찾을 수없는 것 같았습니다. Netbeans에서 찾을 방법을 모르겠습니다. 여기 독립 실행 형 응용 프로그램에 대해 Netbeans 및 Maven을 사용하여 log4j를 구성하는 방법

내 오류입니다 :

log4j:WARN No appenders could be found for logger (com.domain.project). 
log4j:WARN Please initialize the log4j system properly.  

의 log4j.xml 경로는 SRC/메인/자원/COM/도메인/제품/GUI/자원 /의 log4j.xml

참고 : log4j에 위치 .xml은 레거시 코드와 일치하도록 선택되었으므로 (즉, 미래의 유지 보수자가 찾을 수 있도록) 필요하다면 변경할 수 있습니다.

의 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/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.domain.project</groupId> 
    <artifactId>project-log</artifactId> 
    <packaging>jar</packaging> 
    <version>0.1-SNAPSHOT</version> 
    <name>project-log</name> 
    <url>http://maven.apache.org</url> 
    <build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.0.2</version> 
       <configuration> 
        <source>1.5</source> 
        <target>1.5</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>5.1.9</version> 
     </dependency> 
    <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.14</version> 
      <scope>compile</scope> 
     </dependency> 
    </dependencies> 
</project> 

내 아주 간단한의 log4j.xml 것 :

static Logger log = Logger.getLogger("com.domain.project"); 

:

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 

    <appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender"> 
     <layout class="org.apache.log4j.PatternLayout"> 
     <!-- The default pattern: Date Priority [Category] Message\n --> 
     <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/> 
     </layout> 
    </appender> 

    <category name="com.domain.project"> 
    <priority value="debug"/> 
    </category> 

    <root> 
     <priority value="info"/> 
     <appender-ref ref="ConsoleAppender"/> 
    </root> 

</log4j:configuration> 

그리고 내 전화 로깅을 설정하는 어떻게 알 수 있습니까? 이 구성 파일에 Maven 클래스 경로를 설정하는 Netbeans? log4j.xml

Ilane

+0

당신은 이것을 우아한 방식으로 해결 했습니까? – Lars

답변

1

위치 오히려 이상하다. 내가 src/main/resources에 그것을 배치하고 문제가 사라질 것입니다. 과 같은 파일을 찾으려면 레거시 도구가 필요하다면 generate-resources 단계에 해당 파일을 복사 해보십시오. 예를 들어, maven-antrun-plugin

2

최근 응용 프로그램이 IDE 내에서 실행될 때 로깅을 작동시키고 싶을 때 같은 문제가 발생했습니다.

내 솔루션은 아래 그림과 같이 nbm-maven-plugin추가 설명을 사용하는 것입니다.

-J-Dlog4j.configuration = ...의 사용에주의하십시오. -J는 옵션이 응용 프로그램에 전달되도록합니다. 그렇지 않으면 maven 시작 프로그램의 JVM에만 영향을줍니다.

<build> 
    <pluginManagement 
    <plugins> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>nbm-maven-plugin</artifactId> 
     <extensions>true</extensions> 
     <configuration> 
      <brandingToken>${brandingToken}</brandingToken> 
      <cluster>${brandingToken}</cluster> 
      <additionalArguments>-J-Dlog4j.configuration=file:${basedir}/log4j.properties</additionalArguments> 
     </configuration> 
     </plugin> 
    </plugins> 
    </pluginManagement> 
</build>