Как зарегистрировать пользовательский объект в access.log из httpservlet, развернутого в jboss 10.x - PullRequest
0 голосов
/ 05 июня 2019

Я хочу зарегистрировать пользовательский объект AccessLogInfo (имеет около 8 полей) в access.log из переопределенного метода com.yodlee.dc.api.HttpServlet.doPost ().У меня этот сервлет развернут на сервере jboss (wildfly 10.x).В настоящее время я устанавливаю этот объект в объекте httpServletRequest, который, очевидно, печатается как

      • [04 / Jun / 2019: 21: 09: 26 +0530] "POST / dc / file HTTP / 1.1" 400 - "-" "PostmanRuntime / 7.6.0" - 70.133 - - - com.yodlee.dc.api.AccessLogInfo@49ca4a42 - -

в access.log.Я хочу, чтобы отдельные атрибуты были напечатаны.

В качестве обходного пути я реализовал toString для своего объекта, и он печатается, как показано ниже, когда я передаю accessLogInfo.toString () в объект httpServletRequest:

      • [05 / Jun / 2019: 09: 52: 25 +0530] "POST / dc / file HTTP / 1.1" 204 - "-" "PostmanRuntime / 7.6.0"- 5.709 - - - AccessLogInfo [siteId = 16441, trackingId = 1234, siteTxnId = dKMkotd + gJFoOurDxbZmOxKIB84 =, компонент =" xyz ", cobrandId = 10000004, fxid = 10041578, cip = контейнер = ноль," ноль ", отклик nullC, NULL, отклик nullC, NULL, отклик NULL, отклик nullC] - -

Есть ли лучший способ, чем toString (), чтобы напечатать этот объект из объекта httpServletRequest?

1),Java-код:

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //do some stuff
    AccessLogInfo accessLogInfo = new AccessLogInfo(req, null);
            //make service call, get final accessLogInfo
            //accessLogInfo is a pojo with some fields.
    req.setAttribute("AccessLogInfo", accessLogInfo);
    resp.setStatus(refreshRequest.getStatus());
            //do some stuff
}

2).Конфигурация журнала доступа JBOSS в standalone.xml:

шаблон журнала доступа = "... другие шаблоны здесь ...% {r, AccessLogInfo}% ... другие шаблоны здесь" prefix = "access."суффикс = "log"

(PS: предположим, открывающие и закрывающие теги; невозможно вставить XML выше).

Есть ли способ использовать некоторые существующие функции ведения журнала доступа jboss для регистрации содержимого объектавместо того, чтобы кормить его функцией toString () объекта?

...