Java 在此场景中日志记录是如何发生的

Java 在此场景中日志记录是如何发生的,java,log4j,slf4j,Java,Log4j,Slf4j,我对log4j和slf4j不太了解。但我想了解实际记录器在以下情况下是如何工作的 我有一个Web模块、服务模块和Dao模块。Web模块依赖于服务,服务依赖于Dao 在我的web模块中有3个JAR。slf4j jar、log4j jar和slf4j-log4j12 jar以及log4j.xml如下所示 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

我对log4j和slf4j不太了解。但我想了解实际记录器在以下情况下是如何工作的

我有一个Web模块、服务模块和Dao模块。Web模块依赖于服务,服务依赖于Dao

在我的web模块中有3个JAR。slf4j jar、log4j jar和slf4j-log4j12 jar以及log4j.xml如下所示

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true">
<!-- ============================== -->
   <!-- Append messages to the console -->
   <!-- ============================== -->

   <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
      <param name="Target" value="System.out"/>
      <param name="Threshold" value="INFO"/>

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

     <appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender">        



        <param name="file" value="C:\\temp\\web.log" />
        <param name="DatePattern" value="'.'yyyy-MM-dd" />
        <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="[%t] %d{HH:mm:ss,SSS} %-5p %l - %m%n" />
        </layout>
    </appender>

<!-- ======================= -->
   <!-- Setup the Root category -->
   <!-- ======================= -->

   <root>
      <!-- 
         Set the root logger priority via a system property. Note this is parsed by log4j         
       -->
        <level value="trace" />
        <appender-ref ref="CONSOLE"/>
   </root>

   <logger name="com.mywork">
        <level value="DEBUG" />
        <appender-ref ref="FILE" />
    </logger>



    <logger name="org.hibernate">
        <level value="ERROR" />
        <appender-ref ref="FILE" />
    </logger>

     <logger name="org">
        <level value="ERROR" />
        <appender-ref ref="FILE" />
    </logger>

</log4j:configuration>

在我的服务模块和dao模块中,只包含slf4j jar。和日志详细信息在文件中。(所有模块的日志详细信息)

hibernate和Spring的记录器是否也可以在我的文件中找到? 异常如何发生在日志文件中


谢谢

您明确地用
错误
级别约束了org.*。 这有效地消除了hibernate和spring记录器的几乎所有输出。 但以错误级别记录的异常仍应进入文件日志

IDE中配置的模块依赖项是不相关的。日志记录发生在JBoss容器中,只取决于实际应用程序的运行时类路径

顺便说一句,我强烈建议不要使用根类别的跟踪级别。 有关解释,请参阅