带有意外符号的log4j2异常输出

时间:2018-04-27 02:23:08

标签: java log4j2

我正在为我的项目使用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 :(得分:0)

该行末尾的符号(即:~[?:1.8.0_162])称为“packaging data”,您需要配置log4j布局以将其删除。

我假设您的LOG_MSG_PATTERN包含启用此功能的xExxExceptionxThrowable。用ex|exception|throwablerEx|rException|rThrowable替换该模式项应该将其删除。

有关布局的更多信息,您可以在此处查看log4j2文档:

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