首页 > 解决方案 > 如何更改文件夹以在项目中创建文件?

问题描述

我在 IntelliJ Idea 中创建了 java maven Web 应用程序。当我尝试通过 .xml 文件创建 log(log4j.log) 文件时,它会创建但在 Tomcat/bin 文件夹中。我想在项目文件夹中创建该文件。

我已经通过这种方式解决了这个问题:更改 .xml 文件的这一部分

<param name="file" value="log4j.log"/>

对此

<param name="file" value="C:/Users/Igor/IdeaProjects/JA_Project/log4j.log"/>

我必须在 gitHub 上分享我的项目的主要问题,如果其他人下载了这个项目,他会遇到问题,因为他的计算机上的路径不同

logger.xml 文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true"
                     xmlns:log4j='http://jakarta.apache.org/log4j/'>



 <appender name="console"
              class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern"
                   value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
        </layout>
    </appender>

    <appender name="fileAppender"
              class="org.apache.log4j.FileAppender">
        <param name="file" value="C:/Users/Igor/IdeaProjects/JA_Lesson__6/log4j.log"/>
        <param name="maxFileSize" value="10KB" />
        <param name="maxBackupIndex" value="5" />
        <param name="threshold" value="error"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern"
                   value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
        </layout>

        <filter class="org.apache.log4j.varia.LevelRangeFilter">
        <param name="levelMin" value="ERROR" />
        <param name="levelMax" value="ERROR" />
        </filter>

    </appender>

    <root>
        <level value="DEBUG" />
        <appender-ref ref="console" />
        <appender-ref ref="fileAppender" />
    </root>

</log4j:configuration>

如何更改文件夹以在项目中创建文件?

标签: javamaventomcatweb-applicationslog4j

解决方案


当我启动服务器时,我可以看到这样的行: Using CATALINA_BASE: "C:\Users\Igor.IntelliJIdea2019.3\system\tomcat\Tomcat_9_0_19_Task"

我的解决方案是设置

<param name="file" value="${catalina.base}/logs/server.log"/>

代替

<param name="file" value="C:/Users/Igor/IdeaProjects/JA_Lesson__6/log4j.log"/>

每个人都有自己的 CATALINA_BASE 路径,但内部结构是一样的!使用这个“${catalina.base}/logs/”是有意义的


推荐阅读