Chciałbym wiedzieć, jak skonfigurować Dropwizard do rejestrowania odpowiedzi JSON.Jak rejestrować odpowiedzi JSON w Dropwizard (Jersey)
Odpowiedz
W dropwizard 0.8.1 (również próbował w 0.9.0-SNAPSHOT), dodać do Application.run(...)
:
import java.util.logging.Logger;
import org.glassfish.jersey.filter.LoggingFilter;
...
public void run(MyApplicationConfiguration conf, Environment env) throws Exception {
// do your stuff and then add LoggingFilter
env.jersey().register(new LoggingFilter(
Logger.getLogger(LoggingFilter.class.getName()),
true)
);
}
Aby skonfigurować rejestrator, dodać w pliku konfiguracyjnym (np conf.yml
):
logging:
loggers:
org.glassfish.jersey.filter.LoggingFilter: INFO
W podklasie serwisowym (ex HelloWorldService), w metodzie run, dodać:
environment.setJerseyProperty(ResourceConfig.PROPERTY_CONTAINER_REQUEST_FILTERS, LoggingFilter.class.getName());
environment.setJerseyProperty(ResourceConfig.PROPERTY_CONTAINER_RESPONSE_FILTERS, LoggingFilter.class.getName());
a następnie upewnij się, że com.sun.jersey.api.container.filter.LoggingFilter (lub dowolny pakiet rodzicem) jest skonfigurowany przynajmniej na poziomie log INFO, na przykład:
logging:
loggers:
"com.sun.jersey.api.container.filter.LoggingFilter": INFO
Z jakiegoś powodu program rejestrujący nie wydaje się konfigurować poziomu? –
Należy pamiętać, że było to w Dropwizard 0.6.x dni. W wersji 0.7.0 mogło się to zmienić. Nigdy nie zbudowałem nic z Dropwizard 0.7.0 i odeszłem od tego, więc nie jestem pewien. Przepraszam. –
LoggingFilter wewnętrznie wywołuje logger.info (...) Oto fragment: prywatny dziennik pustych danych (ostateczny StringBuilder b) { , jeśli (logger! = Null) { logger.info (b.toString()); } } –
W dropwizard 0.7.0 poprawnej składni, aby umożliwić rejestrowanie żądanie i odpowiedź brzmi:
environment.jersey().property(ResourceConfig.PROPERTY_CONTAINER_REQUEST_FILTERS, LoggingFilter.class.getName());
environment.jersey().property(ResourceConfig.PROPERTY_CONTAINER_RESPONSE_FILTERS, LoggingFilter.class.getName());
odpowiedzi są nieco przestarzałe, to jak to należy zrobić w nowszych wersjach:
env.jersey().register(new LoggingFeature(logger, LoggingFeature.Verbosity.PAYLOAD_ANY));
Gdzie logger
jest java.util.logging.Logger
Logging Filtr jest przestarzałe, więc powinniśmy używać LoggingFeature.
Niestety nie mogłem dostać pracy z odpowiedzią @Kliknij upvote dnia
env.jersey().register(new LoggingFeature(logger, LoggingFeature.Verbosity.PAYLOAD_ANY));
następujący kod pracował dla mnie. Odpowiadają różnym konstruktorom.
environment.jersey().register(new LoggingFeature(Logger.getLogger(LoggingFeature.DEFAULT_LOGGER_NAME), Level.INFO, LoggingFeature.Verbosity.PAYLOAD_ANY, LoggingFeature.DEFAULT_MAX_ENTITY_SIZE));
Oto konstruktory w obu przypadkach.
public LoggingFeature(Logger logger, Integer maxEntitySize) {
this(logger, (Level)null, DEFAULT_VERBOSITY, maxEntitySize);
}
public LoggingFeature(Logger logger, Level level, LoggingFeature.Verbosity verbosity, Integer maxEntitySize) {
this.filterLogger = logger;
this.level = level;
this.verbosity = verbosity;
this.maxEntitySize = maxEntitySize;
}
Ustawienie poziomu działa.
- 1. Dropwizard/Jersey: Uwierzytelnianie i parametr JSON
- 2. Jak rejestrować instrukcje SQL w Dropwizard
- 3. Komunikaty o błędach Dropwizard z Jersey
- 4. Status odpowiedzi klienta Jersey 204
- 5. Jak rejestrować wszystkie nagłówki żądania/odpowiedzi w Tomcat 7
- 6. JAX/Jersey Kod błędu niestandardowego w odpowiedzi
- 7. Ważny JSON w odpowiedzi
- 8. Dropwizard/Jersey - brak zależności dla publicznej metody podczas uruchamiania testów
- 9. Jersey zużywają JSON na POST
- 10. Jersey/Jackson: jak złapać wyjątek mapowania json?
- 11. Jersey, jak wyświetlić listę obiektów JSON?
- 12. Zużywanie obiektu JSON w serwisie Jersey
- 13. Polimorfizm w JSON, Jersey i Jackson
- 14. Jak korzystać z klienta Java Couchbase w projekcie Dropwizard?
- 15. serwis internetowy jersey json utf-8 kodowanie
- 16. Jersey nie przestrzega reguł typu nośnika odpowiedzi z @Produces
- 17. Niedozwolone znaki w odpowiedzi JSON
- 18. Edycja odpowiedzi json z curl odpowiedzi
- 19. Jak zaimplementować websocket w Dropwizard
- 20. Gorące wdrożenie Dropwizard
- 21. jak zdobyć moje wartości konfiguracyjne w yml - używając dropwizard (microservice) Jersey D.I @Injection?
- 22. Jak ustawić domyślnie json zamiast xml w jersey?
- 23. Jak rejestrować aktywność połączenia JDBC?
- 24. Jak rejestrować wszystkie nagłówki w nginx?
- 25. Odczytywanie odpowiedzi JSON między domenami
- 26. Jak rejestrować wyjątki "catched"?
- 27. Jak programowo rejestrować PerformanceCounter
- 28. Buforowanie działań w szynach i odpowiedzi json
- 29. Rozmiar przechowywania odpowiedzi JSON w JavaScript
- 30. Wzrost maxJsonLength odpowiedzi json w MVC 4
LoggingFilter jest przestarzałe. Zaktualizuj odpowiedź za pomocą LoggingFeatuers – Ramesh