log4j2 выводит исключения с неожиданными символами - PullRequest
0 голосов
/ 27 апреля 2018

Я использую log4j2 для своего проекта, однако при возникновении исключения появляются такие символы, как ~[classes/:?] или ~[?1.8.0_162]. Мне интересно, как эти синтаксис приходят и как удалить эти символы ~[?: ] при регистрации? Спасибо.

java.net.SocketTimeoutException: connect timed out
at java.net.PlainSocketImpl.socketConnect(Native Method) ~[?:1.8.0_162]
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[?:1.8.0_162]
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[?:1.8.0_162]
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[?:1.8.0_162]
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:1.8.0_162]
at java.net.Socket.connect(Socket.java:589) ~[?:1.8.0_162]
at com.proxy.client.ProxyClientFactory.connect(ProxyClientFactory.java:23) ~[classes/:?]

Ниже приведена часть моего log4j2.xml

    <Routing name="ConsoleLog">
        <Routes pattern="$${ctx:threadName}">
            <Route>
                <File name="consoleLog" fileName="${ctx:threadName}/console.log" >
                    <RegexFilter regex=".*(html|div|table).*" onMatch="DENY" onMismatch="ACCEPT" />
                    <PatternLayout pattern="${LOG_MSG_PATTERN}" />
                </File>
            </Route>
        </Routes>
    </Routing>

1 Ответ

0 голосов
/ 27 апреля 2018

Символы в конце строки (то есть: ~[?:1.8.0_162]) называются " упаковочные данные ", и вам потребуется настроить макет log4j для их удаления.

Я предполагаю, что ваш LOG_MSG_PATTERN содержит что-то вроде xEx, xException или xThrowable, которые включают эту функцию. Замена этого элемента шаблона на ex|exception|throwable или rEx|rException|rThrowable должна удалить его.

Для получения дополнительной информации о макетах, вы можете увидеть документацию log4j2 здесь:

https://logging.apache.org/log4j/2.x/manual/layouts.html

...