java - 无法让 log4j 在 JBoss 服务器上的 Maven Web 项目中工作

标签 java jboss log4j

我创建了一个 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>

最佳答案

确保将jboss-deployment-struction.xml放入WEB-INF中。

配置jboss-deployment-struct.xml

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

关于java - 无法让 log4j 在 JBoss 服务器上的 Maven Web 项目中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12978402/

相关文章:

java - 如何将 STDIO 重定向到 java 应用程序上的 GUI 组件?

java - spring security中的手动认证逻辑应该去哪里——服务层还是表现层?

java - JBoss hibernate : Could not load requested class com. mysql.jdbc.Driver

java - Log4j 动态参数

java - 序列化接口(interface)

java - BufferedInputStream 如何从操作系统请求数据 block

java - 该步骤不允许使用“skippable-exception-classes”

java - 如何在jboss日志中添加日期,Logger是Java.util.logging.Logger

java - Jar无法找到log4j配置文件,该文件是使用manifest.mf配置的

java - Log4j 配置(基于大小)不起作用