2012-10-19 55 views
2

我創建一個log4j.properties上,我其插入到../WEB-INF/classes/ 這裏是屬性文件無法獲取的log4j在Maven的Web項目的工作在JBoss服務器

# Define the root logger with appender FA 
log4j.rootLogger=Debug,FA 

# Define the file appender 
log4j.appender.FA=org.apache.log4j.FileAppender 

# Set the name of the file 
log4j.appender.FA.File=c:\log.log 
log4j.appender.MaxFileSize=50MB 

# Set the immediate flush to true 
log4j.appender.FA.ImmediateFlush=true 

# Define the layout for file appender 
log4j.appender.FA.layout=org.apache.log4j.PatternLayout 
log4j.appender.FA.layout.ConversionPattern=%d{MM/dd HH\:mm\:ss} %-5p %30.30c %x - %m\n 

我在啓動時運行的類中有一個簡單的LOG語句。我在控制檯中看到 - 這樣LOG語句正常工作。

JBoss 5.1內部Log4j似乎是優先的,沒有任何我在網上發現正在修復它。

任何建議,我可以嘗試和回報或任何額外的信息,我需要提供?

謝謝大家!

編輯:

我將它從屬性文件更改爲xml。這裏是xml

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 

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

    <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
     <param name="Threshold" value="INFO" /> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%-5p %c{1} - %m%n" /> 
     </layout> 
    </appender> 

    <appender name="fileAppender" class="org.apache.log4j.FileAppender"> 
     <param name="Threshold" value="INFO" /> 
     <param name="file" value="program.log" /> 
     <param name="append" value="true"/> 
      <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%-5p %c{1} - %m%n" /> 
     </layout> 
    </appender> 

    <logger name="com.program"> 
     <level value="debug" /> 
     <appender-ref ref="console"/> 
     <appender-ref reg="fileAppender" /> 
    </logger> 


</log4j:configuration> 

我將公司名稱和程序更名爲「com.program」,所以這些只是佔位符。

編輯:

這裏是目錄結構:

src 
---main 
    ---java 
    ---resources 
    ---webapp 
     ---META-INF 
     ---WEB-INF 
      ---classes 
      +log4j.xml 
      +jboss-deployment-structure.xml 

的Maven的pom.xml

 <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.17</version> 
     <scope>provided</scope> 
    </dependency> 

回答

3

確保把jboss-deployment-structure.xmlWEB-INF

配置jboss-deployment-structure.xml

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0"> 
    <deployment> 
     <exclusions> 
      <module name="org.apache.log4j" /> 
     </exclusions>  
    </deployment> 
</jboss-deployment-structure> 
+0

不要我把它放在WEB-INF/classes目錄下討論的記錄? – envinyater

+0

通常,'classes'文件夾和'lib'位於'WEB-INF'目錄下。請務必將所有jar文件放在'WEB-INF/lib /' – CycDemo

+0

嗯,我試過了,它仍然沒有創建日誌。我確實更改爲一個.xml文件,用於發佈在主帖子中的log4j配置。 – envinyater

0

我想通了。 Maven沒有將log4j.jar添加到lib文件夾。我應該儘快抓住它,但一切都準備好了!

1

這個問題有兩種解決方案。

默認的JBoss log4j屬性文件中獲取優先於你的應用程序log4j屬性文件,因爲類加載器加載的資源,按以下順序

bootstrap > system > common > webapp 

您可以

  1. 要麼替換現有的conf/log4j.xml文件與您的副本快速獲取您的日誌記錄需求。這是一個快速和骯髒的解決方案。
  2. 或者,您也可以通過微調看待這個問題這是在http://docs.jboss.org/process-guide/en/html/logging.html
相關問題