Skip to content

"task-log" RollingFile Appender

This appender manages scheduled task logs with automatic file rotation.

Configuration example:

xml
<RollingFile name="task-log" fileName="logs/tasks.log" filePattern="logs/tasks-%d{yyyy-MM-dd}.log">
    <ThresholdFilter level="DEBUG"/>
    <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss},%m%n"/>
    <Policies>
        <SizeBasedTriggeringPolicy size="1000KB"/>
    </Policies>
    <DefaultRolloverStrategy max="100"/>
</RollingFile>

The task log is a CSV-type log. It differs from other logs as it only takes a snapshot of the scheduled tasks' state at a given time T. It can be used to analyze system load but cannot show all tasks that have been executed. Each log line format consists of 4 sections and 10 columns. Taking the following example, here's the explanation of each column:

xml
2025-01-28 15:43:54,1,0,,5,1,2025-01-28 15:43:43,10,0,

Log details:

  1. 2025-01-28 15:43:54: Snapshot date and time
  2. Section for high priority tasks
  3. Section for medium priority tasks
  4. Section for low priority tasks

Column details:

  • 2025-01-28 15:43:54: Snapshot date and time
  • 1: Identifier indicating the low priority tasks section (1 = Low priority, 5 = Medium priority, 10 = High priority)
  • 0: Number of low priority tasks currently running
  • `` : Date and time of the oldest low priority task not yet executed
  • 5: Identifier indicating the medium priority tasks section (1 = Low priority, 5 = Medium priority, 10 = High priority)
  • 1: Number of medium priority tasks currently running
  • 2025-01-28 15:43:43: Date and time of the oldest medium priority task not yet executed
  • 10: Identifier indicating the high priority tasks section (1 = Low priority, 5 = Medium priority, 10 = High priority)
  • 0: Number of high priority tasks currently running
  • `` : Date and time of the oldest high priority task not yet executed

Basic Configuration

  • Name: task-log
  • Output file: logs/tasks.log
  • Archive file pattern: logs/tasks-[DATE].log

Log Format

The pattern %d{yyyy-MM-dd HH:mm:ss},%m%n defines the following format:

  • %d{yyyy-MM-dd HH:mm:ss} : Date and time in specified format
  • , : Separator (comma)
  • %m : Log message
  • %n : Line break

Rotation Policy

  • SizeBasedTriggeringPolicy: 1000KB (1MB) per file
  • DefaultRolloverStrategy: Maximum 100 archive files
  • Rotation creates a new file when:
    • Current file reaches 1MB
    • A new day begins (based on date pattern)

Filter

  • ThresholdFilter: Minimum level DEBUG
  • All messages of level DEBUG or higher will be recorded
  • Format particularly suitable for:
    • Export to analysis tools (CSV-like format)
    • Historical analysis with significant retention (100 files)

References