如何为HTTP-Appender配置log4j2.xml

时间:2018-01-16 17:00:14

标签: http log4j2 appender

我需要帮助在log4j2.xml中配置HTTP-Appender。我已经多次尝试使用JSONLayout和PatternLayout配置它,但都没有工作。这是我的代码段。

<Http name="HTTP_APPENDER" url="http://localhost:8080/test/logRest" method="POST">
        <Property name="x-java-runtime" value="$${java:runtime}" />

        <PatternLayout pattern="%-5p | %d{yyyy-MM-dd HH:mm:ss} | [%t] %C{2} (%F:%L) - %m%n"/>
</Http>

=============================================== ======================

@RequestMapping(value = "/logRest", method = RequestMethod.POST)
public void logRest(HttpServletRequest request,HttpServletResponse response, Model model){

    Enumeration<String> y = request.getHeaderNames();
    while (y.hasMoreElements()) {
        String param = y.nextElement();
        String value = request.getHeader(param);
        System.out.println(param + "=" + value);
    }

    System.out.println("====================================");

    Enumeration<String> x = request.getParameterNames();
    while (x.hasMoreElements()) {
        String param = x.nextElement();
        String value = request.getParameter(param);
        System.out.println(param + "=" + value);
    }

}

=============================================== =================== 我需要获取记录的数据,但它没有显示在标题,参数甚至请求属性中。我将非常感谢您将记录的数据发送到URL端点的任何形式的帮助。

干杯。

1 个答案:

答案 0 :(得分:0)

见下面的解决方案:

   /**
 * Reads the request body from the request and returns it as a String.
 *
 * @param request HttpServletRequest that contains the request body
 * @return request body as a String or null
 */
private String readRequestBody(HttpServletRequest request) {
    try {
        // Read from request
        StringBuilder buffer = new StringBuilder();
        BufferedReader reader = request.getReader();
        String line;
        while ((line = reader.readLine()) != null) {
            buffer.append(line);
        }
        return buffer.toString();
    } catch (Exception e) {
        //logger.error("Failed to read the request body from the request.");
    }
    return null;
}