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

如何从包含的文件中删除/禁用/覆盖追加器?

柴霖
2023-03-14

我尝试用自己的控制台附加器在logback-spring.xml中声明一个根记录器,但这只会重复输出。我尝试声明一个空根记录器(以设置不同的日志级别)和一个与包含的名称相同的新附加器(“console”),但这是误导的(因为根记录器是空的),并且仍然不能删除文件附加器。

误导的logback-spring.xml版本

xml prettyprint-override"><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>

<configuration scan="true">
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <!-- bunch of loggers -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="net.logstash.logback.encoder.LogstashEncoder" />
    </appender>
    <root level="ERROR">
    </root>
</configuration>

我所期待的是这样的事情:

    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <appender name="CUSTOM-CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="net.logstash.logback.encoder.LogstashEncoder" />
    </appender>
    <root level="ERROR">
        <appender-ref ref="CUSTOM-CONSOLE"/>
    </root>

编辑:我的问题是关于从包含文件继承的附加程序,因此建议在日志中禁用附加程序吗?不要真的去讨论这个问题。

共有1个答案

秦俊豪
2023-03-14

似乎没有办法移除/重写附加器。但是,根据此http://logback.qos.ch/codes.html#早期_fa_collision

如果前面定义的FileAppender/RollingFileAppender具有与当前appender相同的File选项,则这两个appender会发生冲突,因为FileAppender实例不能共享相同的输出目标。为防止数据丢失,当前附加程序将不会启动。确保每个附加器都有一个唯一的文件选项。

可以禁用附加器。然而,这种方法更多的是一个黑客而不是一个正确的解决方案。

 类似资料:
  • 我的项目中有一个com.org.projectname.model包。我想做的是,从SonarQube覆盖范围中排除此包中的所有文件。我试过了,和,仍然没有成功。 如何解决这个问题?或者还有别的办法吗?

  • 问题内容: 我想使用Java创建和删除目录,但是它不起作用。 问题答案: Java无法删除其中包含数据的文件夹。您必须先删除所有文件,然后再删除文件夹。 使用类似: 然后,您应该可以使用 Untested 删除文件夹!

  • 我想用Java创建和删除一个目录,但是它不起作用。

  • 问题内容: 我需要使用PHP删除包含内容的文件夹。和删除空文件夹,但无法删除包含内容的文件夹。 问题答案: 此功能将允许您删除任何文件夹(只要可写)及其文件和子目录。 或不递归使用:

  • 我想镜像两个文件夹,但排除某些文件类型(例如js文件)。我可以用 /XF选项来做到这一点。 我遇到的问题是,如果目标文件夹中有一个带有js文件的Foo文件夹,但源文件夹中没有Foo文件夹,那么下面的robocopy命令将删除目标端的Foo文件夹以及其中的js文件。 机器人复制。exe d:\Source d:\Destination/E/PURGE/XF*。js/COPYALL/FFT 我想要的是

  • 我有两个div互相覆盖。我只想从覆盖区域删除边框。请看下面的示例代码 此代码将输出为: 但我希望输出为: 我怎样才能做到这一点呢?请帮帮忙。 注意:我正在使用下拉菜单。第一个div实际上用于菜单名称,第二个div用于菜单列表。