使用log4j2如何配置我的PatternLayout以打印除了消息之外的信息,而不是我发送的Map param
void info(String message, Object... params);
这是我的代码
Map<String, String> params = new HashMap<>();
params.put(REMOTE_HOST, request.remoteAddress()
.toString());
params.put(URI, request.uri());
params.put(METHOD, request.method()
.toString());
params.put(REMOTE_HOST, request.remoteAddress()
.toString());
params.put(REFERER, request.headers()
.get(HttpHeaders.REFERER));
params.put(USER_AGENT, request.headers()
.get(HttpHeaders.USER_AGENT));
params.put(STATUS_CODE, Integer.toString(response.getStatusCode()));
params.put(RESPONSE_CONTENT_LENGTH, response.headers()
.get(HttpHeaders.CONTENT_LENGTH));
params.put(TIME, getTime(start, getNano));
log.info(request.absoluteURI(), params);
和我的Appender
<File name="requestLog" fileName="request.log" append="false">
<PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n "/>
</File>
现在只打印
2016-08-04 15:57:32.288 [vert.x-eventloop-thread-0] INFO requestLog - http://localhost:8080/v4/quote
答案 0 :(得分:1)
您可以使用格式字符串:
log.info("URI: {}, parameters: {}", request.absoluteURI(), params);
在您的代码中,URI被视为格式字符串,但由于它没有占位符,因此它只打印URI并忽略参数。