当前位置: 首页 > 知识库问答 >
问题:

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

李光华
2023-03-14

在我的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的记录器是否也可以在我的文件中使用?记录文件中异常发生的方式?

谢谢你

共有1个答案

屠嘉勋
2023-03-14

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

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

顺便说一句,我强烈建议不要在根类别上使用跟踪级别。请参阅log4j的生产设置文件?解释一下。

 类似资料:
  • 我刚刚在我的应用程序中实现了日志记录,我想知道是否有一种方法来检查日志记录程序是否为空。 我想到的是在我的脚本中设置两个处理程序: 一个用于带有级别的控制台 一个用于级别为的文件 在脚本的末尾,我需要检查logger是否不为空。这意味着在运行期间,记录了一些的消息,在这种情况下,我希望通过将调试级别的日志文件发送到我的邮箱。 这种检查在脚本本身中是否可能,而不需要shell重定向到文件?

  • 我想在我的应用程序中使用SLF4J+logback用于两个目的--日志和审计。 14:41:57.978[main]信息AUDIT_LOGGER-110欢迎使用main 如何确保审核消息在审核记录器下只出现一次?

  • 问题内容: 我使用AWS EC2指南安装了Spark,并且可以使用脚本正常启动该程序以获取Spark提示,并且还可以成功执行快速入门Quide。 但是,我无法终生解决如何在每个命令后停止所有冗长的日志记录。 我在下面的代码(注释掉,设置为OFF)中的几乎所有可能的情况下都尝试了该文件夹,该文件夹位于我从中以及在每个节点上启动应用程序的文件夹中,没有任何反应。执行每个语句后,我仍然可以打印日志记录语

  • 我只想关掉记录。我在文档中发现了这一点:https://docs.jboss.org/optaplanner/release/6.2.0.Final/optaplanner-docs/html_single/index.html#logging 然而,我的项目没有回溯。xml文件。 有什么建议吗? 编辑: 我现在已经将以下logback.xml文件添加到类路径的根目录中: 这些jar文件在我的类路

  • 之前在 codec 章节,曾经提到过,对 Java 日志,除了使用 multiline 做多行日志合并以外,还可以直接通过 log4j 写入到 logstash 里。本节就讲述如何在 Java 应用环境做到这点。 Log4J 首先,需要配置 Java 应用的 Log4J 设置,启动一个内置的 SocketAppender。修改应用的 log4j.xml 配置文件,添加如下配置段: <appende

  • 本节作者:林鹏 配置OSSEC SYSLOG 输出 (所有agent) 编辑ossec.conf 文件(默认为/var/ossec/etc/ossec.conf) 在ossec.conf中添加下列内容(10.0.0.1 为 接收syslog 的服务器) <syslog_output> <server>10.0.0.1</server> <port>9000</port> <for