Log4j2 PatternLayout сокращение пакета шаблона преобразования - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь настроить log4j2 PatterLayout, чтобы сократить имя регистратора, удалив все элементы, кроме первых двух и последнего.Например,
org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver
должен быть напечатан как
org.springframework.~.~.~.~.EndpointLinksResolver

. В документации https://logging.apache.org/log4j/2.x/manual/layouts.html#Patterns рекомендуется использовать что-то вроде %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>
...