Log4j2 PatternLayout сокращение пакета шаблона преобразования
Я пытаюсь настроить log4j2 PatterLayout для сокращения имени регистратора, удалив все элементы, кроме первых двух и последнего. Например,org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver
должен быть напечатан какorg.springframework.~.~.~.~.EndpointLinksResolver
Документация https://logging.apache.org/log4j/2.x/manual/layouts.html рекомендует использовать что-то вроде %c{1.1.~.~}
, но это, кажется, работает до 9 символов.
С помощью %c{9.9.~}
результаты вorg.springfra.~.~.~.~.EndpointLinksResolver
Близко, но не достаточно долго.
С помощью %c{10.10.~}
результаты вo0.s0.~.~.~.~.EndpointLinksResolver
С помощью %c{99.99.~}
результаты вorg.springfra9.~.~.~.~.EndpointLinksResolver
Какой шаблон конвертации я должен использовать, чтобы получить желаемый результат?
Вот мой полный log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="DEBUG">
<Properties>
<Property name="filePrefix">myfile</Property>
</Properties>
<Appenders>
<RollingFile name="RollingFile" fileName="${filePrefix}.log"
filePattern="${filePrefix}-%d{yyyy-MM-dd}-%i.log" immediateFlush="true">
<PatternLayout>
<pattern>%d [%p] %c{9.9.~} [%t]: %m%n</pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
<DefaultRolloverStrategy max="10" />
</RollingFile>
</Appenders>
<Loggers>
<Root level="info" additivity="false">
<appender-ref ref="Console" level="debug"/>
<appender-ref ref="RollingFile"/>
</Root>
</Loggers>
</configuration>