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

如何使用springboot和logback将日志记录按严重性分离到不同的文件

杨昆
2023-03-14
    null
<root level="error">
    <appender-ref ref="RollingFile" />
    <appender-ref ref="Console" />
</root>

<logger name="com.mypkg" level="trace" additivity="true">
    <appender-ref ref="RollingFile" />
</logger>

<logger name="com.mypkg" level="info" additivity="true">
    <appender-ref ref="Console" />
</logger>
    null

知道我做错了什么吗?是否有任何默认的spring日志文件在运行时与此配置合并(将可加性更改为false,修复了重复问题,但仍然没有跟踪消息)?

多谢了。

共有1个答案

孔瑾瑜
2023-03-14

您可以尝试日志筛选器。有一个名为LevelFilter的筛选器。此处还提供接受和忽略日志级别类型的选项。

示例:

<configuration>
  <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
      <level>INFO</level>
      <onMatch>ACCEPT</onMatch>
      <onMismatch>DENY</onMismatch>
    </filter>
    <encoder>
      <pattern>
        %-4relative [%thread] %-5level %logger{30} - %msg%n
      </pattern>
    </encoder>
  </appender>
  <root level="DEBUG">
    <appender-ref ref="CONSOLE" />
  </root>
</configuration>

更多信息在下面的日志记录文档中。

 类似资料:
  • 我正在从事一个Spring Hibernate项目,其中包含Spring AMQP RabbitMQ消息传递实现。rabbitmq配置位于一个单独的xml中,该xml被导入到根应用程序上下文中。rabbitmq侦听器接收器每秒轮询一次队列。重要的日志消息被大量的调试级轮询消息隐藏在日志文件中。 有没有办法将轮询日志分离到另一个文件中,或者阻止它污染日志? 我使用log4j进行日志记录;配置如下。

  • 问题内容: 我正在使用log4j登录我的应用程序。我正在尝试在不同文件中使用不同级别的日志,但是出了点问题。对于解决此问题的任何帮助,我们将不胜感激。 问题答案: log4j附加程序的标准行为是,它们以其阈值级别 或更高 的阈值记录所有消息,即具有阈值INFO的附加器将记录INFO,WARN,ERROR和FATAL消息,但不记录DEBUG。如果你想记录 只有 INFO信息,但不会发出警告及以上,然

  • 问题内容: 我正在迁移一个曾经使用log4j进行logback / slf4j的应用程序,并且已经出现问题约2周了……我做了一个小项目来测试logback / slf4j,它的工作效果很好,但是由于某种原因,在应用它时到实际的应用程序,它只是不想工作。 我正在使用JBoss 6.2,将EAR部署到standalone / deployments目录并启动服务器(除了我得到这个异常的事实,这一切都很

  • 我的简单问题是:如果我有两个类似logger的语句。info()和记录器。error()在Java中(使用log4j),我希望将这两行的结果打印在两个单独的文件中。也就是说,记录器。信息(…)应该打印到一个文件,比如myLog。信息和记录器。错误(…)应该打印到myLog。错误文件。我正在使用滚动文件追加器执行此任务。另外,我只需要一个记录器对象来完成任务。有人可能会建议两个或多个不同的记录器,每

  • 我可以创建一个命名的子记录器,以便该记录器输出的所有日志都用它的名称标记。我可以只在函数/类/任何东西中使用记录器。 但是,如果该代码调用了另一个模块中的函数,该模块仅使用日志模块函数(根记录器的代理)进行日志记录,我如何确保这些日志消息通过相同的记录器(或者至少以相同的方式记录)? 例如: main.py 其他.py 产出: 我希望能够使两个日志行都标记为名称'stuff',我希望能够做到这一点

  • 问题内容: 我有一个普通的INFO级别应用日志。我需要的是另外记录所有错误级别的事件,以单独的错误日志。我正在使用这样的配置: 此配置仅记录错误。如果我首先放置信息级别记录器,则它将仅记录到一般附加程序,但错误记录器将无法工作。我想让他们两个都工作。 问题答案: 您需要做的是只有一个定义了INFO级别的定义,但是在您的两个追加器定义中,您需要相应地设置其阈值,例如 然后,将两个追加程序添加到记录器