1

I have specified in logback.xml the dependency on the Spring logger:

logging.file.path=logs
logging.file.name=${logging.file.path}/app.log

And now, when writing logs, a logs folder is created in the root folder of the project and for some reason the logging.path_IS_UNDEFINED folder is created too. I have two questions:

  • How to make logs written not inside the project folder , but on the same level with it, while writing not an absolute path, but a relative one? That is, if the project is in D:\Projects\MyProject, then the logs should be in D:\Projects\logs
  • And why are the logs duplicated in logging.path_IS_UNDEFINED?

Here is my logback.xml

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

    <include resource="org/springframework/boot/logging/logback/base.xml"/>

    <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <Pattern>%d{HH:mm:ss.SSS} [%thread] %highlight(%-5level) %logger{36} - %msg%n</Pattern>
        </encoder>
    </appender>

    <appender name="RollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${logging.path}/${logging.file}.log</file>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
        </encoder>
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <maxFileSize>2MB</maxFileSize>
        </triggeringPolicy>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${logging.path}/${logging.file}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
            <maxFileSize>2MB</maxFileSize>
            <maxHistory>30</maxHistory>
            <totalSizeCap>10MB</totalSizeCap>
        </rollingPolicy>
    </appender>

    <root level="INFO">
        <appender-ref ref="Console"/>
    </root>
    <root level="DEBUG">
        <appender-ref ref="RollingFile"/>
    </root>

    <logger name="com.my.project" level="TRACE" additivity="false">
        <appender-ref ref="Console"/>
    </logger>

    <logger name="com.my.project" level="ERROR" additivity="false">
        <appender-ref ref="RollingFile"/>
    </logger>

    <logger name="com.my.project" level="WARN" additivity="false">
        <appender-ref ref="RollingFile"/>
    </logger>

</configuration>
SorryForAsking
  • 323
  • 2
  • 18

0 Answers0