"audit-log" RollingFile Appender
This appender manages audit logs with automatic file rotation.
Example Configuration :
xml
<RollingFile name="audit-log" fileName="logs/audit.log" filePattern="logs/audit-%d{yyyy-MM-dd}.log">
<ThresholdFilter level="INFO"/>
<PatternLayout pattern="%d %-5p [%t][%X{MDC_USER}][%X{MDC_REMOTE_IP}][%X{MDC_COMPONENT}] - %m%n"/>
<Policies>
<SizeBasedTriggeringPolicy size="100KB"/>
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
Example Log :
text
2025-02-05 17:15:00,006 INFO [scheduler-worker-3][Business Partners\admin][[0:0:0:0:0:0:0:1]][sfiler-gui] - Original time: 2025-02-05T17:14:55.000-0500: The 'Run a generic Groovy script' extension has been added.
Log details:
2025-02-05 17:15:00,006
: Date and time of the logINFO
: Log level[scheduler-worker-3]
: Thread name[Business Partners\admin]
: Username (from MDC)[[0:0:0:0:0:0:0:1]]
: Remote IP address (from MDC)[sfiler-gui]
: System component concerned (from MDC)- Original time: 2025-02-05T17:14:55.000-0500: The 'Run a generic Groovy script' extension has been added.
: Log message
Basic Configuration
- Name:
audit-log
- Output file:
logs/audit.log
- Archive file pattern:
logs/audit-[DATE].log
Log Format
The pattern %d %-5p [%t][%X{MDC_USER}][%X{MDC_REMOTE_IP}][%X{MDC_COMPONENT}] - %m%n
defines the following format:
%d
: Log date and time%-5p
: Log level (DEBUG, INFO, ERROR...) aligned to 5 characters[%t]
: Thread name[%X{MDC_USER}]
: Username (from MDC)[%X{MDC_REMOTE_IP}]
: Remote IP address (from MDC)[%X{MDC_COMPONENT}]
: System component concerned (from MDC)%m
: Log message%n
: Line break
Rotation Policy
- SizeBasedTriggeringPolicy: 100KB per file
- DefaultRolloverStrategy: Maximum 10 archive files
- Rotation creates a new file when:
- Current file reaches 100KB
- A new day begins (based on date pattern)
Filter
- ThresholdFilter: Minimum level INFO
- Only messages of level INFO or higher (WARN, ERROR, FATAL) will be recorded
- DEBUG level messages will be ignored