Abhishek Patil
Abhishek Patil

Reputation: 1445

rolling in logback logging is not working

I am trying to create logger policy in a spring based project.

The issue I am facing is related to rolling policy. the logfile.log is created and is working fine but the rolling file rollingfile.log.%d{yyyy-MM-dd}.log is not created.

Note : In below logger I wish to created a rolling policy which creates a new file when rollingfile.log exceds more than 10 Mb. So I can have backup of logs without having one single huge logger file. Is there any way to do that?

Given below is my logback.xml.

<?xml version="1.0" encoding="UTF-8"?>
    <configuration debug="true" scan="true" scanPeriod="30 seconds">
        <property name="LOG_PATH" value="D:/coinLogs" />
        <property name="LOG_ARCHIVE" value="${LOG_PATH}/archive" />

        <appender name="Console-Appender" class="ch.qos.logback.core.ConsoleAppender">
            <layout>
                <pattern>[%d{yyyy-MM-dd HH:mm:ss}] - [%X{requestId}] - %p %c -- %m%n
                </pattern>
            </layout>
        </appender>

        <appender name="File-Appender" class="ch.qos.logback.core.FileAppender">
            <file>${LOG_PATH}/logfile.log</file>
            <encoder>
                <pattern>[%d{yyyy-MM-dd HH:mm:ss}] - [%X{requestId}] - %p %c -- %m%n
                </pattern>
                <outputPatternAsHeader>true</outputPatternAsHeader>
            </encoder>
        </appender>

        <appender name="RollingFile-Appender"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${LOG_PATH}/rollingfile.log</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${LOG_ARCHIVE}/rollingfile.log%d{yyyy-MM-dd}.log
                </fileNamePattern>
                <maxHistory>30</maxHistory>
                <totalSizeCap>10MB</totalSizeCap>
            </rollingPolicy>
            <encoder>
                <pattern>%msg%n</pattern>
            </encoder>
        </appender>

        <appender name="Async-Appender" class="ch.qos.logback.classic.AsyncAppender">
            <appender-ref ref="RollingFile-Appender" />
        </appender>

        <logger name="coinPay.logbackxml" level="info" additivity="false">
            <appender-ref ref="Console-Appender" />
            <appender-ref ref="File-Appender" />
            <appender-ref ref="Async-Appender" />
        </logger>

        <!-- To remove extra hibernate logs -->
        <logger name="org.hibernate">
            <level value="info" />
        </logger>

        <root>
            <appender-ref ref="Console-Appender" />
            <appender-ref ref="File-Appender" />
        </root>

    </configuration>

any help will be appreciated. Thank you in advance :D

Upvotes: 1

Views: 3215

Answers (1)

davidxxx
davidxxx

Reputation: 131326

I think you should add in the root element of the configuration, the Async-Appender appender which wraps your RollingFile-Appender. Otherwise it is probably not considered as enabled by logback:

    <root>
        <appender-ref ref="Console-Appender" />
        <appender-ref ref="File-Appender" />
        <appender-ref ref="Async-Appender" />
    </root>

Upvotes: 1

Related Questions