Skip to content

Document that the default rolling policy for Log4j2 requires logging.file.path to be set #48524

@snicoll

Description

@snicoll

The current configuration is as follows

<RollingFile name="File" fileName="${sys:LOG_FILE}" filePattern="${sys:LOG_PATH}/$${date:yyyy-MM}/app-%d{yyyy-MM-dd-HH}-%i.log.gz">
<Select>
<SystemPropertyArbiter propertyName="FILE_LOG_STRUCTURED_FORMAT">
<StructuredLogLayout format="${sys:FILE_LOG_STRUCTURED_FORMAT}" charset="${sys:FILE_LOG_CHARSET}"/>
</SystemPropertyArbiter>
<DefaultArbiter>
<PatternLayout pattern="${sys:FILE_LOG_PATTERN}" charset="${sys:FILE_LOG_CHARSET}"/>
</DefaultArbiter>
</Select>
<Filters>
<ThresholdFilter level="${sys:FILE_LOG_THRESHOLD:-TRACE}"/>
</Filters>
<Policies>
<SizeBasedTriggeringPolicy size="10 MB"/>
</Policies>
</RollingFile>

Rolling a file called myapp.log leads to a strange folder structure that expects LOG_PATH to be set, something like:

.
├── ${sys:LOG_PATH}
│   └── 2025-12
│       ├── app-2025-12-15-09-1.log.gz
│       ├── app-2025-12-15-09-2.log.gz
│       ├── app-2025-12-15-09-3.log.gz
│       ├── app-2025-12-15-09-4.log.gz
│       └── app-2025-12-15-09-5.log.gz

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions