ARTIFACTORY: How to rotate Artifactory and Access logs daily using logback.xml

ARTIFACTORY: How to rotate Artifactory and Access logs daily using logback.xml

AuthorFullName__c
Elumalai Ganesan
articleNumber
000006079
ft:sourceType
Salesforce
FirstPublishedDate
2024-04-21T16:02:52Z
lastModifiedDate
2024-04-21
VersionNumber
1

JFrog Artifactory uses the logback framework for Artifactory and Access services. Logback is a popular open-source Java-based logging framework designed for efficient and flexible logging in Java applications.

To rotate your Artifactory and Access logs daily and archive them for n number of days, please use the sample appender using time based rolling policy along with 

Artifactory Version 7:

Below is the example of rotating artifactory-service/access/request.log daily and keeping them for 30 days.
 

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <File>${log.dir}/artifactory-service.log</File>
    <encoder>
        <pattern>%date{yyyy-MM-dd'T'HH:mm:ss.SSS, UTC}Z [jfrt ] [%-5p] [%-16X{uber-trace-id}] [%-30.30(%c{3}:%L)] [%-20.20thread] - %m%n</pattern>
    </encoder>
    <!-- http://logback.qos.ch/manual/appenders.html#TimeBasedRollingPolicy  -->
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- rollover daily -->
        <FileNamePattern>${log.dir.archived}/artifactory-service/%d{yyyy-MM-dd}/artifactory-service.%d{yyyy-MM-dd}.log.gz</FileNamePattern>
        <!-- keep logs for 30 days -->
        <maxHistory>30</maxHistory>
    </rollingPolicy>
</appender>

<appender name="REQUEST" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${log.dir}/artifactory-request.log</File>
        <encoder>
            <pattern>%m%n</pattern>
        </encoder>
        <!-- http://logback.qos.ch/manual/appenders.html#TimeBasedRollingPolicy --> <rollingPolicy  class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">          
            <FileNamePattern>${log.dir.archived}/artifactory-request/%d{yyyy-MM-dd}/artifactory-request.%d{yyyy-MM-dd}.log.gz</FileNamePattern>
            <!-- keep logs for 30 days -->
            <maxHistory>30</maxHistory>
        </rollingPolicy>
</appender>


<appender name="ACCESS" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${log.dir}/artifactory-access.log</File>
        <encoder>
            <pattern>%m%n</pattern>
        </encoder>
        <!-- http://logback.qos.ch/manual/appenders.html#TimeBasedRollingPolicy -->
<rollingPolicy  class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${log.dir.archived}/artifactory-access/%d{yyyy-MM-dd}/artifactory-access.%d{yyyy-MM-dd}.log.gz</FileNamePattern>
            <!-- keep logs for 30 days -->
            <maxHistory>30</maxHistory>
        </rollingPolicy>
</appender>