Я создаю модуль, который использует http://hc.apache.org/httpcomponents-client-4.2.x/index.html, чтобы делать HTTP-запросы к внешним службам. Этот модуль будет использоваться приложением. Приложение настраивает различные аспекты модуля с помощью файла конфигурации на основе XML. и я хочу указать уровень ведения журнала, который будет использоваться для связи с http в этом XML-файле. Модуль прочитает этот файл конфигурации и настроит HTTP-клиент apache с этим уровнем ведения журнала. Я не мог найти способ, каким образом программным образом я могу настроить apache http-библиотеку с правильным уровнем ведения журнала, которое хочет приложение. Там в любом случае?Динамическая настройка клиента Apache Http
ответ
HttpClient использует Commons Logging, как описано здесь: http://hc.apache.org/httpcomponents-client-4.2.x/logging.html
Так он делегирует протоколирование в вашей среде журналирования. Чтобы настроить протоколирование HTTP-запросов, вам необходимо использовать API фреймворка регистрации. Например, при использовании JDK протоколирование, что-то, как это должно работать:
java.util.logging.Logger.getLogger("org.apache.http.wire").setLevel(Level.ALL)
Каждая структура регистрации будет иметь свой собственный API.
Чтобы использовать встроенную реализацию SimpleLog, что упаковано с Викисклада протоколирования, вы могли бы сделать что-то вроде этого:
System.setProperty("org.apache.commons.logging.Log","org.apache.commons.logging.impl.SimpleLog");
System.setProperty("org.apache.commons.logging.simplelog.defaultlog","trace");
DefaultHttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet("http://www.google.com");
client.execute(request);
Выполнение этого кода должен напечатать много бревенчатых выходов на консоль (SYSERR) ,
Обратите внимание, что простой журнал на самом деле не является хорошим выбором для рамки ведения журнала производства. Вы действительно должны использовать что-то вроде log4j.
- 1. динамическая настройка .NET-клиента через сокет
- 2. Настройка GsonFactory Google HTTP-клиента
- 3. Создание Apache HTTP-клиента поточно
- 4. Исключение из http-клиента apache
- 5. Apache Http Components - настройка cookie
- 6. Настройка тайм-аута для Jodd HTTP-клиента?
- 7. прохождение атрибутов в Apache HTTP клиента
- 8. Динамическая настройка CSS
- 9. Настройка обновления Apache HTTP Компоненты для андроид
- 10. Настройка git-http-backend с apache 2.4
- 11. Настройка mod_proxy на apache http server
- 12. Настройка режима аутентификации Apache X509 HTTP-заголовки
- 13. Клиент Apache HTTP и условная настройка прокси
- 14. Динамическая настройка PasswordStrengthRegularExpression
- 15. Динамическая настройка ReportViewer
- 16. динамическая настройка структуры данных
- 17. Проверяется динамическая настройка RadioButton
- 18. Динамическая настройка Yii-макета
- 19. Возможные HTTP-запросы Apache
- 20. Настройка прокси-сервера для клиента-клиента
- 21. Apache CXF настройки клиента прокси
- 22. Динамическая настройка диапазона spinbox tkinter
- 23. Настройка журналов Apache
- 24. Ошибка клиента-конфигуратора Apache
- 25. Динамическая настройка ширины ячейки таблицы
- 26. Динамическая настройка настроек решателя MILP?
- 27. Динамическая настройка разрешения на роль
- 28. Динамическая настройка конечной точки WCF
- 29. Динамическая настройка SENDER_ID в GCM
- 30. Динамическая настройка form_tag submit destination
Привет, Барак, я пробовал это \t \t System.setProperty ("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog"); но не смог получить выход из журнала (даже не на консоль). \t \t System.setProperty ("org.apache.commons.logging.simplelog.showdatetime", "true"); \t \t System.setProperty ("org.apache.commons.logging.simplelog.log.org.apache.http", "DEBUG"); \t \t System.setProperty ("org.apache.commons.logging.simplelog.log.org.apache.http.wire", "DEBUG"); \t \t java.util.logging.Logger.getLogger ("org.apache.http.wire"). SetLevel (Level.ALL); – user243655
Добавлен образец кода для SimpleLog – Barak
Где вы предлагаете добавить конфигурацию ведения журнала в свой код? Я должен быть смущен, или, может быть, это ужасный дизайн? Кажется, он не очень «настраивается», если он жестко закодирован в моем приложении. –