Task 1-1: Log Level Cleanup - viewer-get-livestream
Phase: 1 Priority: Low Module:
livestreamwebDepends on: Không có Reference: docs/BountyHunter-Backend/details/feature-livestream/SPEC.md
Background
LivestreamController.viewerGetLivestreamById() dùng LOGGER.error() cho performance debug logs. Điều này gây noise trong production error monitoring và làm khó phân biệt error thực sự.
Tasks
File: livestreamweb/controllers/livestream/LivestreamController.java
DI Note:
LivestreamControllercần injectLivestreamService(hoặc tương đương) để gọi query. Đảm bảo logger được khai báo làprivate static final Logger LOGGER = LoggerFactory.getLogger(LivestreamController.class);(SLF4J) hoặc dùng Lombok@Slf4j.
- [ ] Replace tất cả
LOGGER.error("##### [viewer-get-livestream] ...")→LOGGER.debug(...) - [ ] Bỏ prefix
#####vì không cần thiết với debug level — giữ prefix[viewer-get-livestream]để dễ grep logs - [ ] Giữ nguyên
LOGGER.error()cho exception paths thực sự (catch blocks và unexpected states) - [ ] Cập nhật format: log
elapseddưới dạngelapsed={}ms(thêm đơn vị ms) để dễ đọc
// Trước:
LOGGER.error("##### [viewer-get-livestream] 1 Started for livestreamId={}, userId={}", id, loginUserId);
LOGGER.error("##### [viewer-get-livestream] 2 After query livestream={}", elapsed);
// Sau:
LOGGER.debug("[viewer-get-livestream] Started for livestreamId={}, userId={}", id, loginUserId);
LOGGER.debug("[viewer-get-livestream] After query elapsed={}ms", elapsed);
Verification / Acceptance Criteria
- [ ] Không còn
LOGGER.error("##### [viewer-get-livestream]")nào trongLivestreamController.java - [ ] Search
LOGGER.debug("[viewer-get-livestream]"tồn tại thay thế - [ ] Exception paths (catch blocks) vẫn dùng
LOGGER.error() - [ ] Application khởi động thành công sau thay đổi (
mvn spring-boot:run) - [ ] Với
logging.level.com.figpop.livestreamweb=DEBUG→ debug logs hiển thị; với levelINFO→ không hiển thị performance logs
Files to Modify
livestreamweb/src/main/java/com/figpop/livestreamweb/controllers/livestream/LivestreamController.java