0

我需要每天配置我的日志,并希望每天创建单独的日志文件,只有每 24 小时的日志。如何在我的 XML 中适应它。

任何人都可以帮助我重构它,因为它对我来说看起来很业余。

我不需要根据大小滚动,请建议,因为我的 logback.xml 共享如下:

logback.xml

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

<timestamp key="bySecond" datePattern="yyyy-MM-dd_HHmmss" />

<!-- Send debug messages to System.out -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n
        </pattern>
    </encoder>
</appender>

<appender name="ROLLING"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${log.folder}/TM-${bySecond}.log</file>
    <rollingPolicy
        class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
        <fileNamePattern>${log.folder}/Archive-%d{yyyy-MM-dd}.%i.log
        </fileNamePattern>
        <maxFileSize>10MB</maxFileSize>
        <maxHistory>30</maxHistory>
        <totalSizeCap>1GB</totalSizeCap>
    </rollingPolicy>
    <encoder>
        <pattern>TM ID [%X{TMId}] %d{HH:mm:ss.SSS} [%thread]
            %-5level %logger{5} - %msg%n</pattern>
    </encoder>
</appender>

<appender name="PS"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${log.folder}/PS/TM-PS-%d{yyyy-MM-dd}.log
        </fileNamePattern>
        <maxHistory>30</maxHistory>
        <totalSizeCap>1GB</totalSizeCap>
    </rollingPolicy>
    <triggeringPolicy
        class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <maxFileSize>10MB</maxFileSize>
    </triggeringPolicy>
    <encoder>
        <pattern>TM ID [%X{TMId}] %d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
    </encoder>
</appender>

<appender name="R1"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${log.folder}/R1/TM-R1-%d{yyyy-MM-dd}.log
        </fileNamePattern>
        <maxHistory>30</maxHistory>
        <totalSizeCap>1GB</totalSizeCap>
    </rollingPolicy>
    <triggeringPolicy
        class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <maxFileSize>10MB</maxFileSize>
    </triggeringPolicy>
    <encoder>
        <pattern>TM ID [%X{TMId}] %d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
    </encoder>
</appender>
<appender name="D1"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${log.folder}/D1/TM-D1-%d{yyyy-MM-dd}.log
        </fileNamePattern>
        <maxHistory>30</maxHistory>
        <totalSizeCap>1GB</totalSizeCap>
    </rollingPolicy>
    <triggeringPolicy
        class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <maxFileSize>10MB</maxFileSize>
    </triggeringPolicy>
    <encoder>
        <pattern>TM ID [%X{TMId}] %d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
    </encoder>
</appender>

<appender name="TRANSACTIONSIFTER" class="ch.qos.logback.classic.sift.SiftingAppender">
    <discriminator>
        <key>transactionData</key>
        <defaultValue>default-data</defaultValue>
    </discriminator>
    <sift>
        <appender name="trancsactionFileAppender"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${log.folder}/PS/Transactions/TM-PS-${transactionData}-%d{yyyy-MM-dd}.log
                </fileNamePattern>
                <maxHistory>30</maxHistory>
                <totalSizeCap>1GB</totalSizeCap>
            </rollingPolicy>
            <triggeringPolicy
                class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
                <maxFileSize>10MB</maxFileSize>
            </triggeringPolicy>
            <encoder>
                <pattern>TM ID [%X{TMId}] %d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
            </encoder>
        </appender>
    </sift>
</appender>


<logger name="in.smartbox.TM" level="info" additivity="false">
    <appender-ref ref="ROLLING" />
    <appender-ref ref="STDOUT" />
</logger>

<logger name="in.smartbox.TM.PS" level="info"
    additivity="false">
    <appender-ref ref="PS" />
    <appender-ref ref="STDOUT" />
    <appender-ref ref="TRANSACTIONSIFTER" />
</logger>

<logger name="in.smartbox.TM.R1" level="info"
    additivity="false">
    <appender-ref ref="R1" />
    <appender-ref ref="STDOUT" />
</logger>
<logger name="in.smartbox.TM.D1" level="info"
    additivity="false">
    <appender-ref ref="D1" />
    <appender-ref ref="STDOUT" />
</logger>
<!-- By default, the level of the root level is set to DEBUG -->
<root level="info">
    <appender-ref ref="ROLLING" />
    <appender-ref ref="STDOUT" />
</root>

4

1 回答 1

0

这可能会对您有所帮助,“org.apache.log4j.DailyRollingFileAppender”

于 2018-02-27T07:24:25.970 回答