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

日志将覆盖依赖关系日志.xml

居晗日
2023-03-14

我正在开发一个应用程序,使用我的另一个项目作为maven依赖项。

期望

我希望我的依赖项使用自己的回退.xml登录自己的文件。我希望应用程序使用自己的 logback.xml文件登录到控制台和一个与依赖项不同的文件。我希望这两个文件都位于应用程序jar附近的日志文件夹中。

它现在做什么

但是目前,应用程序和依赖项都使用应用程序的logback.xml,所有内容都记录在控制台和同一个文件中。

我该如何解决这个问题?

项目详情

两者都使用logback作为日志记录器。依赖关系是一种协议实现,它将通信信息记录在一个文件中,该文件必须与应用程序日志位于不同的文件中。应用程序和依赖项都有一个经典的maven结构,在resource文件夹中有logback.xml文件。

依赖项logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="FILE"  class="ch.qos.logback.core.rolling.RollingFileAppender">
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <Pattern>
            %d{HH:mm:ss}|%msg%n
        </Pattern>
    </encoder>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- rollover daily -->
        <fileNamePattern>./log/communications.%d{yyyy-MM-dd}.%i.log
        </fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>10MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>
</appender>

<root level="DEBUG">
    <appender-ref ref="FILE"/>
</root>

</configuration>

应用程序logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <layout class="ch.qos.logback.classic.PatternLayout">
        <Pattern>
            %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
        </Pattern>
    </layout>
</appender>
<appender name="FILEAPPLI" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <Pattern>
            %d{HH:mm:ss}|%msg%n
        </Pattern>
    </encoder>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- rollover daily -->
        <fileNamePattern>./log/debugfileappli.%d{yyyy-MM-dd}.%i.log
        </fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>10MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>
</appender>

<root level="DEBUG">
    <appender-ref ref="STDOUT"/>
    <appender-ref ref="FILEAPPLI"/>
</root>

</configuration>

共有1个答案

轩辕经国
2023-03-14

我找到了解决方案。在我的依赖关系代码中,我调用一个特定的记录器名称。

private static final Logger logger = LoggerFactory.getLogger("dependencyLogger");

我在我的应用程序日志中声明了这个记录器.xml

<logger name="dependencyLogger" level="debug">
    <additivity="false">
    <appender-ref ref="FILE-AUDIT" />
    <appender-ref ref="STDOUT" />
</logger>

通过这种方式,我可以在一个logback.xml中处理来自依赖项的所有日志

 类似资料:
  • 我希望在Spring Ansi着色日志中使用不同的颜色来区分INFO、DEBUG和TRACE,因为它们目前都设置为绿色(见下表) 从这里的文档中https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-logging-color-coded-outpu

  • 问题内容: 我使用了tomcat,并简单地覆盖了默认的日志系统。如何在我的Spring应用程序中启用Wildfly上的Logback日志记录? 我在tomcat上的Logback.xml 问题答案: 您可以使用logback来配置应用程序中的日志记录。您不能使用logback为服务器配置日志记录。 要在配置中使用logback,您需要将更改为false或创建一个不包含子系统的。您还需要在部署中包括

  • 作为最核心的模块之一, Nutz的日志信息已经相当完善,看懂Nutz的日志,也是了解Nutz工作方式的核心途径之一.

  • THE LOGGING SYSTEM 对于任何 Linux 用户,了解日志文件的使用是非常重要的。日志文件存储关于操作系统和应用程序运行时发生的事件的信息,包括任何错误和安全警报。您的系统将根据我将在本章中介绍的一系列规则自动记录信息。 作为黑客,日志文件可以跟踪目标的活动和身份。但是它也可以是你自己在别人系统上的活动的踪迹。因此,黑客需要知道他们可以收集什么信息,以及可以收集关于他们自己的行为和

  • 系统日志文件概述 文件 描述 /var/log/messages 大多数系统日志消息记录在此处。例外是与身份验证、电子邮件处理相关的定期运行作业的消息以及调试相关的消息。 /var/log/secure 安全和身份验证相关的消息和错误的日志文件。 /var/log/maillog 与邮件服务器相关的消息的日志文件。 /var/log/cron 与定期执行任务相关的日志文件。 /var/log/bo

  • 问题内容: 我正在使用Log4j2 ver 2.3 log4j2.xml看起来像: 当前一天的日志被当天的某些日志覆盖时,所有方法都可以正常工作到第二天。 示例:catalina.2018-03-21.log昨天(3月21日)很好,但是今天被2018-03-22的某些日志覆盖,当时catalina.2018-03-22.log包含了今天(3月22日)的其余日志) 有什么想法吗? 问题答案: Log