【问题标题】:FileNotFoundException (Logback) while starting app启动应用程序时出现 FileNotFoundException (Logback)
【发布时间】: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="%date{yyyy-MM-dd HH:mm:ss.SSS}|${springAppName}|[%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-Span-Export:-}]|%thread|%.-1level|%logger{10}|%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}-%d{yyyy-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}-%d{yyyy-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": "%X{X-B3-TraceId:-}",
                        "span": "%X{X-B3-SpanId:-}",
                        "parent": "%X{X-B3-ParentSpanId:-}",
                        "exportable": "%X{X-Span-Export:-}",
                        "pid": "${PID:-}",
                        "thread": "%thread",
                        "class": "%logger{26}",
                        "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-%d{yyyy-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": "%X{X-B3-TraceId:-}",
                        "span": "%X{X-B3-SpanId:-}",
                        "parent": "%X{X-B3-ParentSpanId:-}",
                        "pid": "${PID:-}",
                        "thread": "%thread",
                        "message": "%message"
                        }
                    </pattern>
                </pattern>
            </providers>
        </encoder>
    </appender>
</included>

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

【问题讨论】:

  • (拒绝访问) Program Files 是一个受保护的目录,没有管理员权限就无法访问。

标签: java spring-boot tomcat intellij-idea logback


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 2013-04-07
    • 1970-01-01
    • 2015-03-14
    • 2014-12-07
    相关资源
    最近更新 更多