gpt4 book ai didi

java - 为什么catalina.home_IS_UNDEFINED目录是Logback在同一个项目目录下生成的?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:15:05 28 4
gpt4 key购买 nike

我已经为我的应用程序编写了 logback 配置文件,但是当我进行 maven clean install(mvn clean install) 时,它在项目目录中生成了一个带有日志文件的 catalina.home_IS_UNDEFINED 目录。为什么会生成这个目录?

我不希望它出现在我的项目目录中。

对解决这个问题有什么帮助吗?

这是配置文件。

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

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date{HH:mm:ss.SSS} %-5p [%t] %c{1} - %m%n</pattern>
</encoder>
</appender>

<appender name="MY_APP_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${catalina.home}/logs/myApplication.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${catalina.home}/logs/myApplication.%d{yyyy-MM-dd}.log</FileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%-5p %date{HH:mm:ss.SSS} [%t] %c{1} - %m%n</pattern>
</encoder>
<append>true</append>
</appender>

<logger name="org.springframework" level="WARN"/>


<root>
<priority value="INFO"/>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="MY_APP_LOG"/>
</root>

</configuration>

最佳答案

背景

此属性加载失败,因为它仅由 tomcat 填充。它不是由 ma​​ven 编译任务填充的。

解决方案1

在 logback.xml 中设置这样的属性

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

<if condition='isDefined("catalina.home")'>
<then>
<property name="log.folder" value="${catalina.home}/logs"/>
</then>
<else>
<property name="log.folder" value="./target/logs"/>
</else>
</if>

<appender name="companyMyAppServiceAppender" class="ch.qos.logback.core.FileAppender">
<file>${log.folder}/company.myApp.log</file>
...
</appender>

...

</configuration>

这将在编译时在目标文件夹中创建日志文件,这些文件将被清除。

解决方案2

“重写”值:

<property name="log.folder" value="./target/logs"/>
<if condition='isDefined("catalina.home")'>
<then>
<property name="log.folder" value="${catalina.home}/logs"/>
</then>
</if>

注意!

并且不要忘记导入 maven janino 依赖项

<!-- The org.codehaus.janino:commons-compiler:2.7.8 dependency -->
<!-- will be automatically pulled in by Maven's transitivity rules -->
<dependency>
<groupId>org.codehaus.janino</groupId>
<artifactId>janino</artifactId>
<version>2.7.8</version>
</dependency>

关于java - 为什么catalina.home_IS_UNDEFINED目录是Logback在同一个项目目录下生成的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24184485/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com