zoukankan      html  css  js  c++  java
  • 【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>

    他写了三个,我上面只更改了第一个路径再跑项目就能起来

    其他两个的左右没有搞懂是干嘛的,干脆也跟着改掉了

  • 相关阅读:
    JavaScript深入之参数按值传递
    计算机网络:这是一份全面 & 详细 的TCP协议学习指南
    前端点击下载excel表格数据
    为什么选择器:last-child有时没有起作用?
    深入理解防抖和节流函数
    收集常用正则表达式
    深入研究-webkit-overflow-scrolling:touch及ios滚动
    一文搞懂网络知识,IP、子网掩码、网关、DNS、端口号
    正则替换replace中$1的用法
    数据库连接池性能对比
  • 原文地址:https://www.cnblogs.com/mindzone/p/14813185.html
Copyright © 2011-2022 走看看