Ho un piccolo progetto con Spring Boot e Maven, e ora sto cercando di configurare il logback per scrivere su un file. Voglio che scriva su un file dato da ${project.build.directory}/${log.folder}/logfile.log
, quindi una sottocartella della directory di build, essendo ${log.folder}
una proprietà che ho specificato in un file application.properties
, si trova nella mia cartella /resources
.logback non trova la proprietà di maven project.build.directory
Questo è il mio logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<logger name="org.springframework.boot" level="INFO"/>
<logger name="org.springframework.security" level="ERROR"/>
<logger name="org.glassfish.jersey" level="DEBUG"/>
<property resource="application.properties"/>
<appender name="DUMMY_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${project.build.directory}/${log.folder}/logfile.log</file>
<encoder>
<pattern>%d{"yyyy-MM-dd HH:mm:ss,SSS zzz"}, [%thread] %-5level %logger{5} - %msg%n
</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.folder}/spring.log.%d</fileNamePattern>
</rollingPolicy>
</appender>
<logger name="xxxxxx" level="INFO" additivity="false">
<appender-ref ref="DUMMY_APPENDER"/>
</logger>
<root level="INFO">
<appender-ref ref="DUMMY_APPENDER"/>
</root>
</configuration>
Scrive i log, ma il mio problema è che quando faccio funzionare l'applicazione, viene creata una cartella project.build.directory_IS_UNDEFINED, poi mette la mia log.folder sotto esso. Dice in the documentation, che
Come il suo strumento di compilazione, logback si basa su Maven, un diffuso open-source strumento di compilazione.
E quando, nel logback.xml, inizio a digitare $ {pro ... quindi il mio IDE visualizza un set di maven implicit properties disponibile.
Quindi dovrebbe funzionare, ma non è così. Qualche idea del perché?