> Java > java지도 시간 > 본문

panache를 사용하여 quarkus에 대한 반응성 Java에서 mongodb 쿼리 로깅을 활성화하는 방법

PHPz
풀어 주다: 2024-07-17 09:52:19
원래의
744명이 탐색했습니다.

나 이후의 모든 사람이 이러한 구성을 쉽게 찾을 수 있도록 여기에 보관하세요.

저는 직장에서 반응형 스타일의 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이 있다는 것을 확실히 알 수 있습니다.

Folder structure of the package

그래서 해당 카테고리로 필터링해 보았는데 효과가 있었습니다 :)
따라서 해결책은 이 범주에서 DEBUG를 활성화하는 것입니다. 따라서 application.properties에 다음 줄을 추가하세요.

quarkus.log.category."io.quarkus.mongodb.panache.common.reactive.runtime".level=DEBUG
로그인 후 복사

이제 로깅이 작동 중입니다

Query logging working

보너스

검색하는 동안 쿼리 로깅을 활성화하는 다른 방법을 찾았지만 mongodb 드라이버에서 로깅하고 있습니다. 활성화하려면 이것을 application.properties에 추가하세요

quarkus.log.category."org.mongodb.driver.protocol.command".level=DEBUG
로그인 후 복사

결과는 이렇게 나오며, db에서도 결과가 출력됩니다.

MongoDB driver logging

Panache로 반응형 Java를 수행하는 누군가를 참고하기 위해 이 구성을 여기에 게시해야겠다고 생각했습니다. 나는 주말 중 하나를 이것과 다른 것들에 투자했습니다. 아마도 저는 수석 소프트웨어 엔지니어로서 위풍당당한 기능 문제를 디버깅하고 후배가 이러한 문제를 탐색할 수 있는 방법과 이 과정에서 저의 단계별 사고 과정이 무엇인지에 대해 더 긴 게시물을 작성할 것입니다.

저는 "왜 작동하지 않을까?"라고 스스로에게 계속 질문했기 때문에 이 모든 것을 배웠습니다. 그게 계속 나를 괴롭혔어요.

참고자료

  1. 나만의 노트
  2. Quarkus 문서
  3. github 토론

위 내용은 panache를 사용하여 quarkus에 대한 반응성 Java에서 mongodb 쿼리 로깅을 활성화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿