2

我创建了一个 log4j.properties 并将其插入到 ../WEB-INF/classes/ 这是属性文件

# 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>
4

3 回答 3

3

确保jboss-deployment-structure.xml放入WEB-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> 
于 2012-10-19T16:31:34.297 回答
1

这个问题有两种解决方案。

默认的 jboss log4j 属性文件优先于您的应用程序 log4j 属性文件,因为类加载器按以下顺序加载资源

bootstrap > system > common > webapp

你可以

  1. 将现有的 conf/log4j.xml 替换为您的副本,以快速满足您的日志记录需求。这是一个快速而肮脏的解决方案。
  2. 或者,您可以通过微调http://docs.jboss.org/process-guide/en/html/logging.html中讨论的日志记录来解决此问题
于 2012-10-28T18:47:32.597 回答
0

我想到了。Maven 未将 log4j.jar 添加到 lib 文件夹中。我应该早点抓住它,但一切都准备好了!!!

于 2012-10-22T21:05:56.483 回答