【发布时间】:2021-03-15 12:22:25
【问题描述】:
我编写了使用 logback 记录到文件的 Spring Boot 应用程序。
我的 logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="LOG_DIR" value="logs"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
%d{dd-MM-yyyy HH:mm:ss.SSS} %magenta([%thread]) %highlight(%-5level) %logger.%M - %msg%n
</pattern>
</encoder>
</appender>
<appender name="SAVE-TO-FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/log.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>
%d{dd-MM-yyyy HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M - %msg%n
</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- rollover daily & on size-->
<fileNamePattern>
${LOG_PATH}/archived/log_%d{dd-MM-yyyy}_%i.log
</fileNamePattern>
<maxFileSize>200MB</maxFileSize>
<maxHistory>10</maxHistory>
<totalSizeCap>2GB</totalSizeCap>
</rollingPolicy>
</appender>
<springProfile name="dev">
<root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="SAVE-TO-FILE"/>
</root>
<logger name="com.elektrosoft.centralServer.telekomCentralServer" additivity="false" level="DEBUG">
<appender-ref ref="STDOUT"/>
<appender-ref ref="SAVE-TO-FILE"/>
</logger>
</springProfile>
<springProfile name="prod">
<root level="INFO">
<appender-ref ref="SAVE-TO-FILE"/>
</root>
<logger name="com.elektrosoft.centralServer.telekomCentralServer" additivity="false" level="DEBUG">
<appender-ref ref="SAVE-TO-FILE"/>
</logger>
</springProfile>
</configuration>
我的应用程序.properties
logging.level.root=info
logging.level.com.elektrosoft.centralServer.telekomCentralServer=debug
logging.level.org.hibernate.SQL=error
logging.file.path=/var/logs/spring-app-logs/
logging.file.name=log.log
logging.pattern.file=%d{dd-MM-yyyy HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M - %msg%n
logging.pattern.console=%d{dd-MM-yyyy HH:mm:ss.SSS} %magenta([%thread]) %highlight(%-5level) %logger.%M - %msg%n
当我从 intellij IDE 运行应用程序并将日志写入该位置的文件时,这一切正常。我将此应用程序部署到 aws beanstalk 并且一切正常。问题是当我从终端(windows 或 linux)运行应用程序时,应用程序没有启动,并且在创建应用程序的文件夹 LOG_PATH_IS_UNDEFINED 文件夹中。
我在 application.properties 中定义了 logging.file.path,我将 logback 文件重命名为 logback-spring,并且在定义 logging.file.path 时从文档中重命名 LOG_PATH 由 spring 定义。
如果我从 IDE 和 AWS 中运行应用程序,但如果我使用 java -jar springAPP.jar 从终端运行时,我不明白为什么这会起作用。
为什么会这样?如何解决这个问题?
请帮忙!
感谢您的所有帮助。
【问题讨论】:
标签: java spring spring-boot spring-logback