【发布时间】:2021-09-10 12:21:36
【问题描述】:
我之前使用的是 log4j 1.x,主要使用 log4j.xml 中的渲染器进行自定义打印。
在我的 java 代码中覆盖 ObjectRenderer 的 doRender(),如下所示 MessageRenderer.java 覆盖 ObjectRenderer:
public String doRender(Object o) {
MessageLoggingContext loggingContext = (MessageLoggingContext) o;
AbstractMessage message = loggingContext.getMessage();
StringBuilder sb = new StringBuilder(512);
sb.append(message.isIncoming() ? "T:" : "F:").append("[").append(loggingContext.getConnectionID()).append(",")
.append(
loggingContext.getSessionKey()).append(",").append(loggingContext.getAccountName())
.append("]:");
return sb.toString();
}
Inside log4j.xml :
<renderer renderedClass="com.common.service.log4j.MessageLoggingContext"
renderingClass="com.common.service.log4j.MessageRenderer" />
【问题讨论】: