Как распечатать данные журнала перед выполнением в CommonsRequestLoggingFilter logFilter ()? - PullRequest
0 голосов
/ 18 февраля 2019

Я реализовал CommonsRequestLoggingFilter logFilter () в Spring Boot, но он записывает необходимую информацию после выполнения фактического метода.Я хочу, чтобы все эти журналы были напечатаны в начале, прежде чем будет выполнен фактический метод.В настоящее время я использую Spring Boot 2.1.1 Release версию.

Я уже пробовал HandlerInterceptor , но для печати именно того, что делает CommonsRequestLoggingFilter, требуется много усилий.Я хотел бы использовать встроенную функцию Spring.Код приведен ниже.

@Bean
    public CommonsRequestLoggingFilter logFilter() {
        CommonsRequestLoggingFilter filter = new CommonsRequestLoggingFilter();
        filter.setIncludeQueryString(true);
        filter.setIncludePayload(true);
        filter.setIncludeHeaders(true);
        filter.setIncludeClientInfo(true);
        filter.setMaxPayloadLength(10000);
        filter.setAfterMessagePrefix("\n-------setAfterMessagePrefix--------\n");
        filter.setAfterMessageSuffix("\n-------------setAfterMessageSuffix-----------------\n");
        filter.setBeforeMessagePrefix("\n=========setBeforeMessagePrefix========\n");
        filter.setBeforeMessageSuffix("\n===============setBeforeMessageSuffix================\n");

        return filter;
    }

Фактический результат выглядит следующим образом

========= setBeforeMessagePrefix ======== uri = / em/ login; client = 0: 0: 0: 0: 0: 0: 0: 1; заголовки = {хост = [localhost: 8080], соединение = [keep-alive], длина содержимого = [95], принять =[application / json], origin = [http://localhost:8080], user-agent = [Mozilla / 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 72.0.3626.109 Safari / 537.36], referer = [http://localhost:8080/em/swagger-ui.html], accept-encoding = [gzip, deflate, br], accept-language = [en-US, en; q = 0.9], Content-Type = [application / json; charset = UTF-8]} =============== setBeforeMessageSuffix ================

----- НЕКОТОРЫЕ Детали исключения---------

------- setAfterMessagePrefix -------- uri = / em / login; client = 0: 0: 0: 0: 0:0: 0: 1; заголовки = {хост = [localhost: 8080], соединение = [keep-alive], длина контента = [95], принять = [приложение / json], источник = [http://localhost:8080],user-agent = [Mozilla / 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit / 537,36 (KHTML, как Gecko) Chrome / 72.0.3626.109 Safari /537.36], referer = [http://localhost:8080/em/swagger-ui.html], accept-encoding = [gzip, deflate, br], accept-language = [en-US, en; q = 0.9], Content-Type = [application / json; charset= UTF-8]}; payload = {"hostName": "string", "password": "string", "token": "string", "userName": "string"} ------------- setAfterMessageSuffix -----------------

Но на самом деле я хочу, чтобы следующее было в верхней части файла журнала дляанализ, который приведен ниже.

------- setAfterMessagePrefix -------- uri = / em / login; client = 0: 0: 0: 0: 0:0: 0: 1; заголовки = {хост = [localhost: 8080], соединение = [keep-alive], длина контента = [95], принять = [приложение / json], источник = [http://localhost:8080],user-agent = [Mozilla / 5.0 (Windows NT 10.0;Win64;x64) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 72.0.3626.109 Safari / 537.36], referer = [http://localhost:8080/em/swagger-ui.html], accept-encoding = [gzip, deflate, br], accept-language = [en-US, en; q = 0,9], Content-Type = [application / json; charset = UTF-8]}; payload = {"hostName": "string", "password": "string", "token": "string"," userName ":" string "} ------------- setAfterMessageSuffix -----------------

------------- Некоторые исключения ------------

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...