【Java】系統找不到指定路徑


報錯信息:

2021-05-26 13:50:11,737 RMI TCP Connection(3)-127.0.0.1 ERROR DefaultRolloverStrategy contains an invalid element or attribute "maxDepth"
2021-05-26 13:50:11,745 RMI TCP Connection(3)-127.0.0.1 ERROR Unable to create file e:/log/dmscc/repair/repair.log java.io.IOException: 系統找不到指定的路徑。
    at java.io.WinNTFileSystem.createFileExclusively(Native Method)
    at java.io.File.createNewFile(File.java:1012)
    at org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:525)

線索是log相關,找到了Log4J的XML配置文件:

配置描述:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] %5p [%C{1}:%L] - %m%n" />
        </Console>

        <RollingFile name="RollingFile" fileName="${LOG_HOME.DIR}/repair/repair.log"
            filePattern="${LOG_HOME.DIR}/repair/repair-%d{yyyy-MM-dd}-%i.log.gz">
            <PatternLayout
                pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] %5p [%C{1}:%L] - %m%n" />
            <Policies>
                <TimeBasedTriggeringPolicy interval="1"  modulate="true" />
                <SizeBasedTriggeringPolicy size="50 MB" />
                <CronTriggeringPolicy schedule="0 0 0 * * ?"/>
            </Policies>
            <DefaultRolloverStrategy maxDepth="100" max="200">
                <Delete basePath="${LOG_HOME.DIR}/repair" maxDepth="2">
                    <IfFileName glob="repair-*.log.gz" />
                    <IfLastModified age="45d" />
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

    </Appenders>
    <Loggers>
        <Logger name="com.yonyou.dms" level="debug" additivity="false">
            <!--<AppenderRef ref="Console" />-->
            <AppenderRef ref="RollingFile" />
        </Logger>
        <Logger name="com.yonyou.gms" level="debug" additivity="false">
            <!--<AppenderRef ref="Console" />-->
            <AppenderRef ref="RollingFile" />
        </Logger>
        <Logger name="com.yonyou.dmsgms" level="debug" additivity="false">
            <!--<AppenderRef ref="Console" />-->
            <AppenderRef ref="RollingFile" />
        </Logger>
        <Root level="info">
            <!--<AppenderRef ref="Console" />-->
            <AppenderRef ref="RollingFile" />
        </Root>
    </Loggers>
</Configuration>

和報錯信息對比發現是這一段配置描述:

 <RollingFile name="RollingFile" fileName="${LOG_HOME.DIR}/repair/repair.log"

原因:

這個項目的路徑是默認找到E盤下面去輸出的,但是我沒有E盤啊

解決方案也就兩種:

一、我從已有的盤中開個新分區划分給E盤,這樣日志能找到盤符輸出了

二、我不想分盤,直接更改日志的輸出路徑,但是這個是動態指定的,於是我就寫死指定到某一個位置

 

所以還是改了日志配置:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] %5p [%C{1}:%L] - %m%n" />
        </Console>

<!-- <RollingFile name="RollingFile" fileName="${LOG_HOME.DIR}/repair/repair.log"--> <!--filePattern="${LOG_HOME.DIR}/repair/repair-%d{yyyy-MM-dd}-%i.log.gz">-->
        <RollingFile name="RollingFile" fileName="d:/log/dmscc/repair/repair.log" filePattern="d:/log/dmscc/repair/repair-%d{yyyy-MM-dd}-%i.log.gz">
            <PatternLayout
                pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] %5p [%C{1}:%L] - %m%n" />
            <Policies>
                <TimeBasedTriggeringPolicy interval="1"  modulate="true" />
                <SizeBasedTriggeringPolicy size="50 MB" />
                <CronTriggeringPolicy schedule="0 0 0 * * ?"/>
            </Policies>
            <DefaultRolloverStrategy maxDepth="100" max="200">
 <!--<Delete basePath="${LOG_HOME.DIR}/repair" maxDepth="2">--> <Delete basePath="d:/log/dmscc/repair" maxDepth="2">
                    <IfFileName glob="repair-*.log.gz" />
                    <IfLastModified age="45d" />
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

    </Appenders>
    <Loggers>
        <Logger name="com.yonyou.dms" level="debug" additivity="false">
            <!--<AppenderRef ref="Console" />-->
            <AppenderRef ref="RollingFile" />
        </Logger>
        <Logger name="com.yonyou.gms" level="debug" additivity="false">
            <!--<AppenderRef ref="Console" />-->
            <AppenderRef ref="RollingFile" />
        </Logger>
        <Logger name="com.yonyou.dmsgms" level="debug" additivity="false">
            <!--<AppenderRef ref="Console" />-->
            <AppenderRef ref="RollingFile" />
        </Logger>
        <Root level="info">
            <!--<AppenderRef ref="Console" />-->
            <AppenderRef ref="RollingFile" />
        </Root>
    </Loggers>
</Configuration>

他寫了三個,我上面只更改了第一個路徑再跑項目就能起來

其他兩個的左右沒有搞懂是干嘛的,干脆也跟着改掉了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM