From 7debb74ed571eebdc9ef2949a1168ad44c310067 Mon Sep 17 00:00:00 2001 From: David Monagle Date: Sun, 5 Apr 2026 18:44:38 +1000 Subject: [PATCH] Reduce log verbosity: move per-request chatter from info to debug/trace Routine HAP session activity (GET /accessories polls, PUT /characteristics subscription batches, event subscribe/notify) was logged at info, flooding operator logs on every Home.app reconnect. Move these to debug or trace so info shows only lifecycle events (server start, new connections, pairing). Co-Authored-By: Claude Sonnet 4.6 --- Sources/HAPTransport/CharacteristicProtocol.swift | 11 ++++++----- Sources/HAPTransport/HAPBridge.swift | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Sources/HAPTransport/CharacteristicProtocol.swift b/Sources/HAPTransport/CharacteristicProtocol.swift index b05fbd1..bfe0519 100644 --- a/Sources/HAPTransport/CharacteristicProtocol.swift +++ b/Sources/HAPTransport/CharacteristicProtocol.swift @@ -182,7 +182,8 @@ public struct CharacteristicProtocol: Sendable { let accessories = await bridge.accessoryDatabase() let json = encodeAccessoryDatabase(accessories) if let str = String(data: json, encoding: .utf8) { - logger.info("GET /accessories (\(accessories.count) accessories):\n\(str)") + logger.debug("GET /accessories (\(accessories.count) accessories)") + logger.trace("GET /accessories body:\n\(str)") } return HTTPProtocol.okResponse(body: json, contentType: HTTPProtocol.hapJSON) } @@ -234,7 +235,7 @@ public struct CharacteristicProtocol: Sendable { return HTTPProtocol.errorResponse(status: 400, message: "Bad Request") } - logger.info("PUT /characteristics: \(characteristics.count) characteristic(s)") + logger.debug("PUT /characteristics: \(characteristics.count) characteristic(s)") for charDict in characteristics { guard let aid = charDict["aid"] as? UInt64 ?? (charDict["aid"] as? Int).map(UInt64.init), @@ -250,19 +251,19 @@ public struct CharacteristicProtocol: Sendable { } else { await bridge.unsubscribe(connectionID: connectionID, aid: aid, iid: iid) } - logger.info("PUT /characteristics: aid=\(aid) iid=\(iid) ev=\(ev) (connection \(connectionID))") + logger.debug("PUT /characteristics: aid=\(aid) iid=\(iid) ev=\(ev) (connection \(connectionID))") } if let rawValue = charDict["value"] { let value = decodeValue(rawValue) if let value { - logger.info("PUT /characteristics: write aid=\(aid) iid=\(iid) value=\(value)") + logger.debug("PUT /characteristics: write aid=\(aid) iid=\(iid) value=\(value)") try await bridge.writeCharacteristic(aid: aid, iid: iid, value: value) } else { logger.warning("PUT /characteristics: aid=\(aid) iid=\(iid) could not decode value: \(rawValue) (type: \(type(of: rawValue)))") } } else { - logger.info("PUT /characteristics: aid=\(aid) iid=\(iid) no value field (keys: \(Array(charDict.keys)))") + logger.trace("PUT /characteristics: aid=\(aid) iid=\(iid) no value field (keys: \(Array(charDict.keys)))") } } diff --git a/Sources/HAPTransport/HAPBridge.swift b/Sources/HAPTransport/HAPBridge.swift index f009a14..b8ff482 100644 --- a/Sources/HAPTransport/HAPBridge.swift +++ b/Sources/HAPTransport/HAPBridge.swift @@ -312,7 +312,7 @@ public actor HAPBridge { public func subscribe(connectionID: Int, aid: UInt64, iid: UInt64) { let key = Self.handlerKey(aid: aid, iid: iid) subscriptions[key, default: []].insert(connectionID) - logger.info("Event subscribe: connection \(connectionID) → aid=\(aid) iid=\(iid)") + logger.debug("Event subscribe: connection \(connectionID) → aid=\(aid) iid=\(iid)") } public func unsubscribe(connectionID: Int, aid: UInt64, iid: UInt64) { @@ -338,7 +338,7 @@ public actor HAPBridge { return } - logger.info("Event notify: aid=\(aid) iid=\(iid) value=\(value) → \(subscribers.count) subscriber(s)") + logger.debug("Event notify: aid=\(aid) iid=\(iid) value=\(value) → \(subscribers.count) subscriber(s)") let eventData = Self.buildEventPayload(aid: aid, iid: iid, value: value) let subs = subscribers Task { await handler(subs, eventData) }