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

在linux vm上运行Spring Boot时出现回退配置错误-windows vm没问题

秦宁
2023-03-14

我有一个托管在azure应用服务上的spring boot应用,它在windows虚拟机上运行良好,但在linux虚拟机上,我得到了这个logback错误(向下滚动查看完整堆栈跟踪):

2022-08-09T21:04:41.0995698 Caused by: java.lang.IllegalStateException: Logback configuration error detected: 
2022-08-09T21:04:41.0995738 ERROR in c******@3:104 - no applicable action for [springProperty], current ElementPath  is [[configuration][springProperty]]

使用:org . spring framework . boot:spring-boot:2 . 3 . 7 . release ch . QoS . log back:log back-core:1 . 2 . 3

我只是把这个放在那里,以防有人以前见过这个。对我来说,接下来的步骤是要么将远程调试器设置为azure,要么设置一个本地linux vm进行测试。

登录.xml:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <springProperty scope="context" name="instrumentationKey" source="appinsights.instrumentationkey"/>
    <statusListener class="ch.qos.logback.core.status.NopStatusListener"/>

    <springProfile name="logging-azure">
        <appender name="aiAppender" class="com.microsoft.applicationinsights.logback.ApplicationInsightsAppender">
            <instrumentationKey>${instrumentationKey}</instrumentationKey>
            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                <level>INFO</level>
            </filter>
        </appender>
    </springProfile>

    <!-- Initial Parent Folder -->
    <variable name="logfilePath" value="br-proposition-logs"/>

    <include resource="standard-logback-config.xml"/>

    <springProfile name="logging-local">
        <root level="ERROR">
            <appender-ref ref="STDOUT"/>
            <appender-ref ref="LOG-FILE"/>
        </root>
    </springProfile>

    <springProfile name="logging-azure">
        <root level="ERROR">
            <appender-ref ref="aiAppender"/>
            <appender-ref ref="LOG-FILE"/>
        </root>
    </springProfile>
</configuration>

和standard-logback-config.xml:

<?xml version="1.0" encoding="UTF-8" ?>

<included>

    <variable name="fileName" value="br-proposition"/>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%X{proposition.requestId}] %-5level %logger %marker  %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="LOG-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${logfilePath}/${fileName}.log</file>
        <rollingPolicy class="com.lv.gi.traps.common.logging.TrapsSizeAndTimeBasedRollingPolicy">
            <FileNamePattern>${logfilePath}/%d{yyyy-MM-dd,aux}/${fileName}.%d{yyyy-MM-dd}-%i.log</FileNamePattern>
            <maxFileSize>20MB</maxFileSize>
            <maxHistory>7</maxHistory>
            <totalSizeCap>1GB</totalSizeCap>
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
        </rollingPolicy>
        <encoder>
            <pattern>%d [${HOSTNAME}:%X{proposition.requestId}] %-5level %logger %marker  %msg%n</pattern>
        </encoder>
    </appender>

</included>

完整堆栈跟踪:

共有1个答案

诸葛雨泽
2023-03-14

通过将logback.xml重命名为logback-spring.xml修复了这个问题。我无法解释为什么只有当jar在Linux上运行而不是在windows上运行时才需要这样做。它现在可以在两种操作系统上工作。

Spring在Spring Boot留档中推荐logback-spring.xml名称,以确保及时初始化logback所需的Spring bean。

 类似资料:
  • 问题内容: 我的PyQt应用程序不再将错误(stderr?)打印到控制台。 我使用QtDesigner并像这样导入UI: test.ui包含一个QPushButton和一个标签。当我在非Qt应用程序中调用testfunc(显然会给出错误)时,会收到错误消息,回溯等信息。执行此代码时,它会退出。 我以前没有QtDesigner编写了一个PyQt应用程序,并且按预期将错误打印到控制台。QtDesign

  • 我遵循了本教程: 1.节点安装-node-v8.9.0-x86 2. ran命令 谢谢你,

  • 我试图使用Eclipse IDE在Apache Tomcat上执行一个简单的servlet。servlet本身正在执行,但当我试图调用html表单时,我将通过该表单向servlet传递用户数据,我得到错误404。我的做法是不正确的吗? 更新1:文件web.xml

  • 问题内容: 我正在通过Netbeans使用LWJGL库用Java编写基本游戏。 我用lwjgl,lwjgl_util和jinput .jar创建了一个库,并在项目属性的“运行”类别中添加了-Djava.library.path = C:\ LWJGL \ native \ windows。 当我在Netbeans中运行文件时,它可以完美运行,没有任何问题。但是,当我通过双击文件运行.jar时,什么

  • 当我在手机上运行应用程序时,我得到了这个错误,即使在重新安装应用程序后,它仍然给我这个错误: 我正在使用电话套餐通过flutter app发送短信: 我使用联系人选择器,然后将号码发送到aove函数: