나 이후의 모든 사람이 이러한 구성을 쉽게 찾을 수 있도록 여기에 보관하세요.
저는 직장에서 반응형 스타일의 Java를 사용하여 마이크로서비스를 작성해 왔습니다. 나는 또한 panache와 함께 mongodb를 사용하고 있습니다. 최근에 내 쿼리 중 하나가 mongo compass에서 완벽하게 작동했지만 당황해서 예상대로 작동하지 않는 문제가 발생했습니다. 그래서 Panache가 생성하는 쿼리를 확인해야 했습니다.
quarkus 공식 문서에서는 mongodb 쿼리를 출력에 기록하는 방법을 제공합니다. 불행하게도 이는 비반응형 Java에서만 작동하며 가이드에서는 이에 대해 제대로 언급하지 않습니다.
quarkus.log.category."io.quarkus.mongodb.panache.common.runtime".level=DEBUG
처음에는 어떤 이유에서인지 내 프로젝트 구성이 잘못되었거나 구성이 충돌하여 로그가 표시되지 않는 것일 수도 있다고 생각했습니다. 어떤 리액티브 코딩이 문제인지 생각해 본 적이 없습니다. 그래서 다른 방법으로 문제를 디버깅하고 문제에 대한 적절한 해결책을 찾았습니다.
이후에는 좀 귀찮기도 하고 왜 쿼리 로깅이 작동하지 않는지 스스로에게 계속 묻고 좌절했습니다. 그러다 유레카 순간에 구성 키를 주의 깊게 살펴보았는데 로그에서 io.quarkus.mongodb.panache.common.runtime 카테고리를 활성화하고 있다는 것을 확실히 알 수 있어서 해당 패키지를 찾아갔습니다. 내 jetbrains IDE에서 찾았는데 common.runtime.CommonPanacheQueryImpl과 또 다른 common.reactive.runtime.CommonReactivePanacheQueryImpl이 있다는 것을 확실히 알 수 있습니다.
그래서 해당 카테고리로 필터링해 보았는데 효과가 있었습니다 :)
따라서 해결책은 이 범주에서 DEBUG를 활성화하는 것입니다. 따라서 application.properties에 다음 줄을 추가하세요.
quarkus.log.category."io.quarkus.mongodb.panache.common.reactive.runtime".level=DEBUG
이제 로깅이 작동 중입니다
검색하는 동안 쿼리 로깅을 활성화하는 다른 방법을 찾았지만 mongodb 드라이버에서 로깅하고 있습니다. 활성화하려면 이것을 application.properties에 추가하세요
quarkus.log.category."org.mongodb.driver.protocol.command".level=DEBUG
결과는 이렇게 나오며, db에서도 결과가 출력됩니다.
Panache로 반응형 Java를 수행하는 누군가를 참고하기 위해 이 구성을 여기에 게시해야겠다고 생각했습니다. 나는 주말 중 하나를 이것과 다른 것들에 투자했습니다. 아마도 저는 수석 소프트웨어 엔지니어로서 위풍당당한 기능 문제를 디버깅하고 후배가 이러한 문제를 탐색할 수 있는 방법과 이 과정에서 저의 단계별 사고 과정이 무엇인지에 대해 더 긴 게시물을 작성할 것입니다.
저는 "왜 작동하지 않을까?"라고 스스로에게 계속 질문했기 때문에 이 모든 것을 배웠습니다. 그게 계속 나를 괴롭혔어요.
위 내용은 panache를 사용하여 quarkus에 대한 반응성 Java에서 mongodb 쿼리 로깅을 활성화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!