启动应用程序时出现 FileNotFoundException (Logback)

     2023-02-27     219

关键词:

【中文标题】启动应用程序时出现 FileNotFoundException (Logback)【英文标题】:FileNotFoundException (Logback) while starting app 【发布时间】:2019-04-16 12:38:51 【问题描述】:

在 tomcat 8.5.0 上运行 SpringBoot 2.0.3 应用程序时出现以下错误:

ch.qos.logback.core.rolling.RollingFileAppender[文件] 中的错误 - openFile(C:\Program Files\Apache Software Foundation\Tomcat 9.0\temp/spring.log,true) 调用失败。 java.io.FileNotFoundException: C:\Program Files\Apache Software Foundation\Tomcat 9.0\temp\spring.log (访问被拒绝)

来自该模块的logback-spring.xml如下:

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

    <springProperty scope="context" name="springAppName" source="spring.application.name"/>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <include resource="logback-json.xml"/>
    <property name="LOG_PATTERN"
              value="%dateyyyy-MM-dd HH:mm:ss.SSS|$springAppName|[%XX-B3-TraceId:-,%XX-B3-SpanId:-,%XX-Span-Export:-]|%thread|%.-1level|%logger10|%msg%n"/>

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>$LOG_PATTERN</pattern>
        </encoder>
    </appender>

    <appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>$catalina.base/logs/$springAppName.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>$catalina.base/logs/$springAppName-%dyyyy-MM-dd.%i.log.zip</fileNamePattern>
            <maxFileSize>200MB</maxFileSize>
        </rollingPolicy>
        <encoder>
            <pattern>$LOG_PATTERN</pattern>
        </encoder>
    </appender>

    <logger name="pl.X" level="debug"/>

    <logger name="jdbc.sqltiming" level="info"/>

    <appender name="ASYNC_REQUEST_RESPONSE_JSON_LOG" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="REQUEST_RESPONSE_JSON_LOG"/>
    </appender>

    <appender name="ASYNC_ROLLING" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="ROLLING"/>
    </appender>
    <appender name="ASYNC_SERVER_JSON_LOG" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="SERVER_JSON_LOG"/>
    </appender>
    <logger name="somePakaes.trace.XLoggingFilter" additivity="false" level="DEBUG">
        <appender-ref ref="ASYNC_REQUEST_RESPONSE_JSON_LOG"/>
    </logger>
    <root level="WARN">
        <appender-ref ref="ASYNC_ROLLING"/>
        <appender-ref ref="ASYNC_SERVER_JSON_LOG"/>
        <appender-ref ref="CONSOLE"/>
    </root>

这里是logback-json.xml,上面的文件指的是:

<?xml version="1.0" encoding="UTF-8"?>
<included>
    <springProperty scope="context" name="springAppName" source="spring.application.name"/>

    <appender name="SERVER_JSON_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>$catalina.base/logs/$springAppName.json</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>$catalina.base/logs/$springAppName-%dyyyy-MM-dd.%i.json.zip</fileNamePattern>
            <maxFileSize>200MB</maxFileSize>
            <maxHistory>2</maxHistory>
        </rollingPolicy>
        <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
            <providers>
                <pattern>
                    <pattern>
                        
                        "date":"%date",
                        "severity": "%level",
                        "service": "$springAppName",
                        "trace": "%XX-B3-TraceId:-",
                        "span": "%XX-B3-SpanId:-",
                        "parent": "%XX-B3-ParentSpanId:-",
                        "exportable": "%XX-Span-Export:-",
                        "pid": "$PID:-",
                        "thread": "%thread",
                        "class": "%logger26",
                        "message": "%message",
                        "ex": "%ex"
                        
                    </pattern>
                </pattern>
            </providers>
        </encoder>
    </appender>

    <logger name="org.springframework.cloud.sleuth.instrument.web.TraceFilter" level="error"/>
    <logger name="org.springframework.cloud.sleuth.instrument.web.TraceHandlerInterceptor" level="error"/>


    <appender name="REQUEST_RESPONSE_JSON_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>$catalina.base/logs/$springAppName_request_response.json</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>$catalina.base/logs/$springAppName_request_response-%dyyyy-MM-dd.%i.json.zip</fileNamePattern>
            <maxFileSize>200MB</maxFileSize>
            <maxHistory>2</maxHistory>
        </rollingPolicy>

        <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
            <providers>
                <pattern>
                    <pattern>
                        
                        "date":"%date",
                        "service": "$springAppName",
                        "severity": "%level",
                        "trace": "%XX-B3-TraceId:-",
                        "span": "%XX-B3-SpanId:-",
                        "parent": "%XX-B3-ParentSpanId:-",
                        "pid": "$PID:-",
                        "thread": "%thread",
                        "message": "%message"
                        
                    </pattern>
                </pattern>
            </providers>
        </encoder>
    </appender>
</included>

但是当以admin 运行 InteliJ 时问题就消失了。

【问题讨论】:

(拒绝访问) Program Files 是一个受保护的目录,没有管理员权限就无法访问。 【参考方案1】:

您在这种情况下可能面临的两个原因:

    看看你有没有读取spring.log文件的权限 java.io.FileNotFoundException最明显的原因:(访问权限是 拒绝)异常,我没有足够的权限,所以我 立即提供对日志的读取、写入和执行权限 文件并重试。

    查看是否有其他进程正在使用该文件 这可能是另一个 java.io.FileNotFoundException 的可能原因:(访问权限为 拒绝)。

【讨论】:

应用程序启动时出现随机 InvalidOperationException

】应用程序启动时出现随机InvalidOperationException【英文标题】:RandomInvalidOperationExceptiononapplicationstartup【发布时间】:2012-11-2114:45:52【问题描述】:我不时在生产机器上启动应用程序时遇到问题。并非每次应用程序启动时都会发... 查看详情

启动 java 程序时出现 ArrayIndexOutOfBoundsException

】启动java程序时出现ArrayIndexOutOfBoundsException【英文标题】:ArrayIndexOutOfBoundsExceptionwhenlaunchingajavaprogram【发布时间】:2015-11-0915:11:02【问题描述】:我目前正在处理一项任务,但在运行我的代码时似乎出现了问题。publicclasscaesarpu... 查看详情

首次应用启动时出现 Android ResourcesNotFoundException

...间】:2021-06-0605:09:17【问题描述】:每当我第一次运行该应用程序时,我都会收到以下异常com.mypckg.myappE/AndroidRuntime:FATALEXCEPTION:mainProcess:com.my 查看详情

启动应用程序时出现意外错误

】启动应用程序时出现意外错误【英文标题】:Unexpectederrorwhilelaunchingapp【发布时间】:2018-03-2617:03:48【问题描述】:我是java新手,我开始为Android编写一个应用程序,但我遇到了一个错误,我认为问题出在意图过滤器上,但我... 查看详情

启动时出现 Angular 8 错误

...1805:57:44【问题描述】:当我使用“ngserve”命令启动Angular应用程序时,我在chrome开发人员工具控制台中看到以下错误:Angularisrunninginthedevelopmentmode.CallenableProdMode()toenabletheproductionmode.inde 查看详情

启动我的应用程序时出现错误消息

】启动我的应用程序时出现错误消息【英文标题】:Errormessagewhenlaunchingmyapp【发布时间】:2014-04-2813:58:07【问题描述】:编辑:我找到了解决方案,这是答案:UITableViewCellindexPathcrashiniOS7谢谢!我在模拟器7.0上使用Xcode5.1.1。当我... 查看详情

为啥使用 gdb 启动 C++ 程序时出现分段错误?

】为啥使用gdb启动C++程序时出现分段错误?【英文标题】:WhydoIhaveasegmentationfaultwhenstartingmyC++programwithgdb?为什么使用gdb启动C++程序时出现分段错误?【发布时间】:2014-05-2316:34:44【问题描述】:我有一个g++项目,想使用gdb对其进... 查看详情

playframework:启动时出现 NullpointerException

...Play1.2.7,不知何故我发现我的项目变得很奇怪,当我启动应用程序并访问任何有效的URL时,它会显示一个NullPointerException:Oops:NullPointer 查看详情

启动应用程序时出现 System.***Exception

】启动应用程序时出现System.***Exception【英文标题】:System.***Exceptionwhenlaunchingapplication【发布时间】:2022-01-0821:26:06【问题描述】:当我启动我的应用程序时,它在“Form1Test=newForm1();”处给我一个错误在我的课上。这是我的代码... 查看详情

在设备上启动 Flutter 应用程序时出现问题“等待应用程序启动超时”

】在设备上启动Flutter应用程序时出现问题“等待应用程序启动超时”【英文标题】:ProblemlaunchingFlutterapplicationondevice"timeoutwaitingfortheapplicationtostart"【发布时间】:2019-03-1815:18:45【问题描述】:一段时间后,我的Flutter应... 查看详情

应用程序第二次启动时出现 Cordova 闪屏白屏

】应用程序第二次启动时出现Cordova闪屏白屏【英文标题】:Cordovasplashscreenwhitescreencomingwhileapplicationlaunchingsecondtime【发布时间】:2015-10-0707:39:05【问题描述】:在启动画面完全启动后,我正在为容器应用程序使用spalshscreen插件(... 查看详情

为啥在启动 Spring Boot 应用程序时出现 Gson builder 错误?

】为啥在启动SpringBoot应用程序时出现Gsonbuilder错误?【英文标题】:WhydoIgetGsonbuildererrorwhenstartingaSpringBootapplication?为什么在启动SpringBoot应用程序时出现Gsonbuilder错误?【发布时间】:2018-10-0611:14:11【问题描述】:我已经下载了ecl... 查看详情

Xamarin 在启动应用程序时出现芯片错误

】Xamarin在启动应用程序时出现芯片错误【英文标题】:Xamarin\'sFormsChipErroronlaunchofapp【发布时间】:2022-01-2201:46:00【问题描述】:我在Xamrain表单中收到以下错误,我无法提供更多详细信息,直到您问我对以前从未有过的错误不熟... 查看详情

在重置和启动应用程序时出现“错误:读取 ECONNRESET”

】在重置和启动应用程序时出现“错误:读取ECONNRESET”【英文标题】:Getting"Error:readECONNRESET"onresetingandlaunchingtheapp【发布时间】:2016-09-0913:04:59【问题描述】:我在重置应用程序[driver.resetApp()]和在Appium(版本:1.4.16.1)... 查看详情

当我启动 toad 应用程序时出现错误

】当我启动toad应用程序时出现错误【英文标题】:gettingerrorwhenIstarttoadapplication【发布时间】:2019-11-1714:04:49【问题描述】:我在启动TOAD时遇到了这个问题。出现以下错误:无法打开文件D:\\DBASE\\TOAD\\TEMPS\\PLSQLSCR.TXT我该如何解决... 查看详情

在 minifyEnabled true 后启动应用程序时出现 NumberFormatException

】在minifyEnabledtrue后启动应用程序时出现NumberFormatException【英文标题】:NumberFormatExceptionwhilestartingappafterminifyEnabledtrue【发布时间】:2017-05-3106:14:44【问题描述】:我正在寻找解决这个问题的方法:01-1612:29:55.9751199-1334/com.zztproject... 查看详情

启动应用程序时出现“拒绝访问” - Windows Vista

】启动应用程序时出现“拒绝访问”-WindowsVista【英文标题】:"Accessdenied"onlaunchingapplication-WindowsVista【发布时间】:2013-11-1112:47:00【问题描述】:我拥有WindowsVista(SP1)的管理员权限。我在Dev-C++中用C++编写程序。那是我的代... 查看详情

启动 Spring Boot 应用程序时出现“cassandraCluster”bean 异常

】启动SpringBoot应用程序时出现“cassandraCluster”bean异常【英文标题】:\'cassandraCluster\'beanexceptionwhilestartingSpringBootApplication【发布时间】:2020-06-2419:48:38【问题描述】:我在启动SpringBoot应用程序时遇到以下异常。SpringBoot版本:2.1... 查看详情