From 04f036983929bd1df838e5e1ed8bb333a0279a73 Mon Sep 17 00:00:00 2001 From: Gulshan Kumar Prasad Date: Mon, 1 Sep 2025 09:09:50 +0530 Subject: [PATCH 1/8] fix(logging): standardize error logs to use %e token --- .../connection-encrypter-plaintext/src/index.ts | 4 ++-- .../src/mocks/connection.ts | 4 ++-- packages/kad-dht/src/content-fetching/index.ts | 2 +- packages/kad-dht/src/content-routing/index.ts | 2 +- packages/kad-dht/src/kad-dht.ts | 8 ++++---- packages/kad-dht/src/network.ts | 4 ++-- packages/kad-dht/src/query-self.ts | 6 +++--- packages/kad-dht/src/query/manager.ts | 2 +- packages/kad-dht/src/reprovider.ts | 2 +- packages/kad-dht/src/routing-table/refresh.ts | 8 ++++---- packages/kad-dht/src/rpc/handlers/put-value.ts | 2 +- packages/keychain/src/keychain.ts | 2 +- packages/libp2p/src/address-manager/index.ts | 2 +- .../src/connection-manager/connection-pruner.ts | 4 ++-- .../libp2p/src/connection-manager/dial-queue.ts | 6 +++--- packages/libp2p/src/connection-manager/index.ts | 4 ++-- .../src/connection-manager/reconnect-queue.ts | 4 ++-- packages/libp2p/src/connection-monitor.ts | 2 +- packages/libp2p/src/connection.ts | 4 ++-- packages/libp2p/src/libp2p.ts | 4 ++-- packages/libp2p/src/peer-routing.ts | 4 ++-- packages/libp2p/src/random-walk.ts | 4 ++-- packages/libp2p/src/registrar.ts | 2 +- packages/libp2p/src/upgrader.ts | 12 ++++++------ packages/metrics-simple/src/index.ts | 2 +- packages/multistream-select/src/select.ts | 6 +++--- packages/peer-discovery-bootstrap/src/index.ts | 4 ++-- packages/peer-discovery-mdns/src/mdns.ts | 6 +++--- packages/peer-discovery-mdns/src/query.ts | 4 ++-- packages/pnet/src/index.ts | 4 +++- packages/protocol-autonat-v2/src/server.ts | 2 +- packages/protocol-dcutr/src/dcutr.ts | 10 +++++----- packages/protocol-echo/src/echo.ts | 2 +- packages/protocol-identify/src/identify-push.ts | 4 ++-- packages/protocol-identify/src/identify.ts | 4 ++-- packages/protocol-identify/src/utils.ts | 2 +- packages/protocol-ping/src/ping.ts | 2 +- packages/pubsub/src/index.ts | 6 +++--- packages/pubsub/src/peer-streams.ts | 2 +- packages/stream-multiplexer-mplex/src/mplex.ts | 2 +- .../src/server/index.ts | 8 ++++---- .../src/transport/discovery.ts | 6 +++--- .../src/transport/reservation-store.ts | 4 ++-- .../src/transport/transport.ts | 16 ++++++++-------- packages/transport-circuit-relay-v2/src/utils.ts | 6 +++--- packages/transport-tcp/src/listener.ts | 10 +++++----- packages/transport-tcp/src/tcp.ts | 2 +- packages/transport-webrtc/src/maconn.ts | 2 +- .../private-to-private/initiate-connection.ts | 12 ++++++------ .../signaling-stream-handler.ts | 10 +++++----- .../src/private-to-private/transport.ts | 6 +++--- .../src/private-to-private/util.ts | 4 ++-- .../src/private-to-public/listener.ts | 2 +- .../src/private-to-public/utils/connect.ts | 2 +- packages/transport-webrtc/src/stream.ts | 14 +++++++------- packages/transport-webrtc/src/util.ts | 2 +- packages/transport-websockets/src/index.ts | 4 ++-- packages/transport-websockets/src/listener.ts | 4 ++-- .../transport-websockets/src/socket-to-conn.ts | 2 +- packages/transport-webtransport/src/index.ts | 8 ++++---- packages/transport-webtransport/src/muxer.ts | 4 ++-- packages/transport-webtransport/src/stream.ts | 4 ++-- packages/utils/src/abstract-stream.ts | 2 +- packages/utils/src/close-source.ts | 2 +- 64 files changed, 149 insertions(+), 147 deletions(-) diff --git a/packages/connection-encrypter-plaintext/src/index.ts b/packages/connection-encrypter-plaintext/src/index.ts index ba2b0796d9..a9d9f83e42 100644 --- a/packages/connection-encrypter-plaintext/src/index.ts +++ b/packages/connection-encrypter-plaintext/src/index.ts @@ -107,8 +107,8 @@ class Plaintext implements ConnectionEncrypter { throw new InvalidCryptoExchangeError('Public key did not match id') } } catch (err: any) { - log.error(err) - throw new InvalidCryptoExchangeError('Invalid public key - ' + err.message) + log.error('Invalid public key - %e', err) + throw new InvalidCryptoExchangeError(`Invalid public key - ${err.message}`) } if (options?.remotePeer != null && !peerId.equals(options?.remotePeer)) { diff --git a/packages/interface-compliance-tests/src/mocks/connection.ts b/packages/interface-compliance-tests/src/mocks/connection.ts index 130123c025..85136f28e9 100644 --- a/packages/interface-compliance-tests/src/mocks/connection.ts +++ b/packages/interface-compliance-tests/src/mocks/connection.ts @@ -155,11 +155,11 @@ export function mockConnection (maConn: MultiaddrConnection, opts: MockConnectio await handler({ connection, stream: muxedStream }) }).catch(err => { - log.error(err) + log.error('%e', err) muxedStream.abort(err) }) } catch (err: any) { - log.error(err) + log.error('%e', err) } }, onStreamEnd: (muxedStream) => { diff --git a/packages/kad-dht/src/content-fetching/index.ts b/packages/kad-dht/src/content-fetching/index.ts index b7e919d24d..6bebce3189 100644 --- a/packages/kad-dht/src/content-fetching/index.ts +++ b/packages/kad-dht/src/content-fetching/index.ts @@ -106,7 +106,7 @@ export class ContentFetching { this.log(`Storing corrected record for key ${dsKey.toString()}`) await this.components.datastore.put(dsKey, fixupRec.subarray(), options) } catch (err: any) { - this.log.error('Failed error correcting self', err) + this.log.error('Failed error correcting self - %e', err) } continue diff --git a/packages/kad-dht/src/content-routing/index.ts b/packages/kad-dht/src/content-routing/index.ts index abaf1137df..92ac8fe04e 100644 --- a/packages/kad-dht/src/content-routing/index.ts +++ b/packages/kad-dht/src/content-routing/index.ts @@ -115,7 +115,7 @@ export class ContentRouting { yield addProviderEvent } } catch (err: any) { - self.log.error('error sending provide record to peer %p', event.peer.id, err) + self.log.error('error sending provide record to peer %p - %e', event.peer.id, err) yield queryErrorEvent({ from: event.peer.id, error: err, diff --git a/packages/kad-dht/src/kad-dht.ts b/packages/kad-dht/src/kad-dht.ts index 6d9aded8a1..7acd9fd3e4 100644 --- a/packages/kad-dht/src/kad-dht.ts +++ b/packages/kad-dht/src/kad-dht.ts @@ -297,7 +297,7 @@ export class KadDHT extends TypedEventEmitter implements Ka const peerData = evt.detail this.onPeerConnect(peerData).catch(err => { - this.log.error('could not add %p to routing table', peerData.id, err) + this.log.error('could not add %p to routing table - %e', peerData.id, err) }) this.dispatchEvent(new CustomEvent('peer', { @@ -320,7 +320,7 @@ export class KadDHT extends TypedEventEmitter implements Ka await this.onPeerConnect(peerData) }).catch(err => { - this.log.error('could not add %p to routing table - %e - %e', peerId, err) + this.log.error('could not add %p to routing table - %e', peerId, err) }) }) @@ -347,7 +347,7 @@ export class KadDHT extends TypedEventEmitter implements Ka } }) .catch(err => { - this.log.error('error setting dht server mode', err) + this.log.error('error setting dht server mode - %e', err) }) }) } @@ -404,7 +404,7 @@ export class KadDHT extends TypedEventEmitter implements Ka signal }) } catch (err: any) { - this.log.error('could not add %p to routing table', peerData.id, err) + this.log.error('could not add %p to routing table - %e', peerData.id, err) } } diff --git a/packages/kad-dht/src/network.ts b/packages/kad-dht/src/network.ts index 888ac53053..6c6b73a927 100644 --- a/packages/kad-dht/src/network.ts +++ b/packages/kad-dht/src/network.ts @@ -188,7 +188,7 @@ export class Network extends TypedEventEmitter implements Startab stream.close(options) .catch(err => { - this.log.error('error closing stream to %p', to, err) + this.log.error('error closing stream to %p - %e', to, err) stream?.abort(err) }) @@ -255,7 +255,7 @@ export class Network extends TypedEventEmitter implements Startab stream.close(options) .catch(err => { - this.log.error('error closing stream to %p', to, err) + this.log.error('error closing stream to %p - %e', to, err) stream?.abort(err) }) diff --git a/packages/kad-dht/src/query-self.ts b/packages/kad-dht/src/query-self.ts index 339994603d..ed2b8a884f 100644 --- a/packages/kad-dht/src/query-self.ts +++ b/packages/kad-dht/src/query-self.ts @@ -76,7 +76,7 @@ export class QuerySelf implements Startable { this.timeoutId = setTimeout(() => { this.querySelf() .catch(err => { - this.log.error('error running self-query', err) + this.log.error('error running self-query - %e', err) }) }, this.initialInterval) } @@ -146,7 +146,7 @@ export class QuerySelf implements Startable { } })) } catch (err: any) { - this.log.error('self-query error', err) + this.log.error('self-query error - %e', err) } finally { signal.clear() @@ -167,7 +167,7 @@ export class QuerySelf implements Startable { this.timeoutId = setTimeout(() => { this.querySelf() .catch(err => { - this.log.error('error running self-query', err) + this.log.error('error running self-query - %e', err) }) }, this.interval) } diff --git a/packages/kad-dht/src/query/manager.ts b/packages/kad-dht/src/query/manager.ts index cd1c7698b7..030e70e4b8 100644 --- a/packages/kad-dht/src/query/manager.ts +++ b/packages/kad-dht/src/query/manager.ts @@ -217,7 +217,7 @@ export class QueryManager implements Startable { // Execute the query along each disjoint path and yield their results as they become available for await (const event of merge(...paths)) { if (event.name === 'QUERY_ERROR') { - log.error('query error', event.error) + log.error('query error - %e', event.error) } if (event.name === 'PEER_RESPONSE') { diff --git a/packages/kad-dht/src/reprovider.ts b/packages/kad-dht/src/reprovider.ts index 3cc3328abf..bc31c72301 100644 --- a/packages/kad-dht/src/reprovider.ts +++ b/packages/kad-dht/src/reprovider.ts @@ -153,7 +153,7 @@ export class Reprovider extends TypedEventEmitter { }) } } catch (err: any) { - this.log.error('error processing datastore key %s - %e', entry.key, err.message) + this.log.error('error processing datastore key %s - %s', entry.key, err.message) } } diff --git a/packages/kad-dht/src/routing-table/refresh.ts b/packages/kad-dht/src/routing-table/refresh.ts index 7758f9a63d..29a71aab9e 100644 --- a/packages/kad-dht/src/routing-table/refresh.ts +++ b/packages/kad-dht/src/routing-table/refresh.ts @@ -107,16 +107,16 @@ export class RoutingTableRefresh { try { await this._refreshCommonPrefixLength(n, lastRefresh, force, options) } catch (err: any) { - this.log.error(err) + this.log.error('%e', err) } } } } catch (err: any) { - this.log.error(err) + this.log.error('%e', err) } }) ).catch(err => { - this.log.error(err) + this.log.error('%e', err) }).then(() => { this.refreshTimeoutId = setTimeout(this.refreshTable, this.refreshInterval) @@ -124,7 +124,7 @@ export class RoutingTableRefresh { this.refreshTimeoutId.unref() } }).catch(err => { - this.log.error(err) + this.log.error('%e', err) }) } diff --git a/packages/kad-dht/src/rpc/handlers/put-value.ts b/packages/kad-dht/src/rpc/handlers/put-value.ts index 156e65da49..6d7453b84f 100644 --- a/packages/kad-dht/src/rpc/handlers/put-value.ts +++ b/packages/kad-dht/src/rpc/handlers/put-value.ts @@ -41,7 +41,7 @@ export class PutValueHandler implements DHTMessageHandler { if (msg.record == null) { const errMsg = `Empty record from: ${peerId.toString()}` - this.log.error(errMsg) + this.log.error('%s', errMsg) throw new InvalidMessageError(errMsg) } diff --git a/packages/keychain/src/keychain.ts b/packages/keychain/src/keychain.ts index 627a89f34b..9061cb9e78 100644 --- a/packages/keychain/src/keychain.ts +++ b/packages/keychain/src/keychain.ts @@ -171,7 +171,7 @@ export class Keychain implements KeychainInterface { return JSON.parse(uint8ArrayToString(res)) } catch (err: any) { await randomDelay() - this.log.error(err) + this.log.error('%e', err) throw new NotFoundError(`Key '${name}' does not exist.`) } } diff --git a/packages/libp2p/src/address-manager/index.ts b/packages/libp2p/src/address-manager/index.ts index 898e905b7b..fbf1986324 100644 --- a/packages/libp2p/src/address-manager/index.ts +++ b/packages/libp2p/src/address-manager/index.ts @@ -188,7 +188,7 @@ export class AddressManager implements AddressManagerInterface { multiaddrs: addrs }) .catch(err => { - this.log.error('error updating addresses', err) + this.log.error('error updating addresses - %e', err) }) } diff --git a/packages/libp2p/src/connection-manager/connection-pruner.ts b/packages/libp2p/src/connection-manager/connection-pruner.ts index ce0716328e..4c80ed521f 100644 --- a/packages/libp2p/src/connection-manager/connection-pruner.ts +++ b/packages/libp2p/src/connection-manager/connection-pruner.ts @@ -48,7 +48,7 @@ export class ConnectionPruner { maybePruneConnections (): void { this._maybePruneConnections() .catch(err => { - this.log.error('error while pruning connections %e', err) + this.log.error('error while pruning connections - %e', err) }) } @@ -88,7 +88,7 @@ export class ConnectionPruner { }, 0)) } catch (err: any) { if (err.name !== 'NotFoundError') { - this.log.error('error loading peer tags', err) + this.log.error('error loading peer tags - %e', err) } } } diff --git a/packages/libp2p/src/connection-manager/dial-queue.ts b/packages/libp2p/src/connection-manager/dial-queue.ts index be314eb327..1c67c0a514 100644 --- a/packages/libp2p/src/connection-manager/dial-queue.ts +++ b/packages/libp2p/src/connection-manager/dial-queue.ts @@ -314,13 +314,13 @@ export class DialQueue { } }) } catch (err: any) { - this.log.error('could not update last dial failure key for %p', peerId, err) + this.log.error('could not update last dial failure key for %p - %e', peerId, err) } // dial successful, return the connection return conn } catch (err: any) { - this.log.error('dial failed to %a', address.multiaddr, err) + this.log.error('dial failed to %a - %e', address.multiaddr, err) // ensure we don't dial it again in this attempt failedMultiaddrs.add(address.multiaddr.toString()) @@ -334,7 +334,7 @@ export class DialQueue { } }) } catch (err: any) { - this.log.error('could not update last dial failure key for %p', peerId, err) + this.log.error('could not update last dial failure key for %p - %e', peerId, err) } } diff --git a/packages/libp2p/src/connection-manager/index.ts b/packages/libp2p/src/connection-manager/index.ts index 8545d74373..edbb4c0173 100644 --- a/packages/libp2p/src/connection-manager/index.ts +++ b/packages/libp2p/src/connection-manager/index.ts @@ -406,7 +406,7 @@ export class DefaultConnectionManager implements ConnectionManager, Startable { try { await connection.close() } catch (err) { - this.log.error(err) + this.log.error('%e', err) } })()) } @@ -443,7 +443,7 @@ export class DefaultConnectionManager implements ConnectionManager, Startable { onConnect (evt: CustomEvent): void { void this._onConnect(evt).catch(err => { - this.log.error(err) + this.log.error('%e', err) }) } diff --git a/packages/libp2p/src/connection-manager/reconnect-queue.ts b/packages/libp2p/src/connection-manager/reconnect-queue.ts index a8ac1b6f8d..4668ad2e82 100644 --- a/packages/libp2p/src/connection-manager/reconnect-queue.ts +++ b/packages/libp2p/src/connection-manager/reconnect-queue.ts @@ -139,13 +139,13 @@ export class ReconnectQueue implements Startable { keepAlivePeers.map(async peer => { await this.connectionManager.openConnection(peer.id) .catch(err => { - this.log.error(err) + this.log.error('%e', err) }) }) ) }) .catch(err => { - this.log.error(err) + this.log.error('%e', err) }) } diff --git a/packages/libp2p/src/connection-monitor.ts b/packages/libp2p/src/connection-monitor.ts index b9dc1e7920..55c500747e 100644 --- a/packages/libp2p/src/connection-monitor.ts +++ b/packages/libp2p/src/connection-monitor.ts @@ -136,7 +136,7 @@ export class ConnectionMonitor implements Startable { } }) .catch(err => { - this.log.error('error during heartbeat', err) + this.log.error('error during heartbeat - %e', err) if (this.abortConnectionOnPingFailure) { this.log.error('aborting connection due to ping failure') diff --git a/packages/libp2p/src/connection.ts b/packages/libp2p/src/connection.ts index 4be51ff8a5..e79a862626 100644 --- a/packages/libp2p/src/connection.ts +++ b/packages/libp2p/src/connection.ts @@ -318,7 +318,7 @@ export class Connection implements ConnectionInterface { this.status = 'closed' this.timeline.close = Date.now() } catch (err: any) { - this.log.error('error encountered during graceful close of connection to %a', this.remoteAddr, err) + this.log.error('error encountered during graceful close of connection to %a - %e', this.remoteAddr, err) this.abort(err) } } @@ -328,7 +328,7 @@ export class Connection implements ConnectionInterface { return } - this.log.error('aborting connection to %a due to error', this.remoteAddr, err) + this.log.error('aborting connection to %a due to error - %e', this.remoteAddr, err) this.status = 'closing' diff --git a/packages/libp2p/src/libp2p.ts b/packages/libp2p/src/libp2p.ts index 5dad2a0520..6a809d9cfd 100644 --- a/packages/libp2p/src/libp2p.ts +++ b/packages/libp2p/src/libp2p.ts @@ -238,7 +238,7 @@ export class Libp2p extends TypedEventEmitter this.safeDispatchEvent('start', { detail: this }) this.log('libp2p has started') } catch (err: any) { - this.log.error('An error occurred starting libp2p', err) + this.log.error('An error occurred starting libp2p - %e', err) // set status to 'started' so this.stop() will stop any running components this.status = 'started' await this.stop() @@ -421,6 +421,6 @@ export class Libp2p extends TypedEventEmitter void this.components.peerStore.merge(peer.id, { multiaddrs: peer.multiaddrs }) - .catch(err => { this.log.error(err) }) + .catch(err => { this.log.error('%e', err) }) } } diff --git a/packages/libp2p/src/peer-routing.ts b/packages/libp2p/src/peer-routing.ts index 3740e917eb..83b52f3c48 100644 --- a/packages/libp2p/src/peer-routing.ts +++ b/packages/libp2p/src/peer-routing.ts @@ -78,7 +78,7 @@ export class DefaultPeerRouting implements PeerRouting { try { yield await router.findPeer(id, options) } catch (err) { - self.log.error(err) + self.log.error('%e', err) } })()) ) @@ -130,7 +130,7 @@ export class DefaultPeerRouting implements PeerRouting { useCache: false }) } catch (err) { - self.log.error('could not find peer multiaddrs', err) + self.log.error('could not find peer multiaddrs - %e', err) return } } diff --git a/packages/libp2p/src/random-walk.ts b/packages/libp2p/src/random-walk.ts index 8cd6c4e09f..ea93f9b98a 100644 --- a/packages/libp2p/src/random-walk.ts +++ b/packages/libp2p/src/random-walk.ts @@ -134,7 +134,7 @@ export class RandomWalk extends TypedEventEmitter implements R this.log('walk iteration for %b and %d walkers finished, found %d peers', data, this.walkers, found) } catch (err) { - this.log.error('random walk errored', err) + this.log.error('random walk errored - %e', err) this.safeDispatchEvent('walk:error', { detail: err @@ -145,7 +145,7 @@ export class RandomWalk extends TypedEventEmitter implements R this.log('no walkers left, ended walk') }) .catch(err => { - this.log.error('random walk errored', err) + this.log.error('random walk errored - %e', err) }) .finally(() => { this.log('finished walk, found %d peers after %dms', found, Date.now() - start) diff --git a/packages/libp2p/src/registrar.ts b/packages/libp2p/src/registrar.ts index c4f10cb111..c2d2e4359b 100644 --- a/packages/libp2p/src/registrar.ts +++ b/packages/libp2p/src/registrar.ts @@ -200,7 +200,7 @@ export class Registrar implements RegistrarInterface { return } - this.log.error('could not inform topologies of disconnecting peer %p', remotePeer, err) + this.log.error('could not inform topologies of disconnecting peer %p - %e', remotePeer, err) }) } diff --git a/packages/libp2p/src/upgrader.ts b/packages/libp2p/src/upgrader.ts index 7db1817524..93641b4dd8 100644 --- a/packages/libp2p/src/upgrader.ts +++ b/packages/libp2p/src/upgrader.ts @@ -365,14 +365,14 @@ export class Upgrader implements UpgraderInterface { await connection.close() } } catch (err: any) { - connection.log.error('error closing connection after timeline close %e', err) + connection.log.error('error closing connection after timeline close - %e', err) } finally { this.events.safeDispatchEvent('connection:close', { detail: connection }) } })().catch(err => { - connection.log.error('error thrown while dispatching connection:close event %e', err) + connection.log.error('error thrown while dispatching connection:close event - %e', err) }) } @@ -425,7 +425,7 @@ export class Upgrader implements UpgraderInterface { protocol } } catch (err: any) { - connection.log.error('encrypting inbound connection from %a failed', connection.remoteAddr, err) + connection.log.error('encrypting inbound connection from %a failed - %e', connection.remoteAddr, err) throw new EncryptionFailedError(err.message) } } @@ -458,7 +458,7 @@ export class Upgrader implements UpgraderInterface { protocol } } catch (err: any) { - connection.log.error('encrypting outbound connection to %a failed', connection.remoteAddr, err) + connection.log.error('encrypting outbound connection to %a failed - %e', connection.remoteAddr, err) throw new EncryptionFailedError(err.message) } } @@ -487,7 +487,7 @@ export class Upgrader implements UpgraderInterface { return { stream, muxerFactory } } catch (err: any) { - connection.log.error('error multiplexing outbound connection', err) + connection.log.error('error multiplexing outbound connection - %e', err) throw new MuxerUnavailableError(String(err)) } } @@ -508,7 +508,7 @@ export class Upgrader implements UpgraderInterface { return { stream, muxerFactory } } catch (err: any) { - connection.log.error('error multiplexing inbound connection', err) + connection.log.error('error multiplexing inbound connection - %e', err) throw new MuxerUnavailableError(String(err)) } } diff --git a/packages/metrics-simple/src/index.ts b/packages/metrics-simple/src/index.ts index 1445c3e9c6..fbd173f326 100644 --- a/packages/metrics-simple/src/index.ts +++ b/packages/metrics-simple/src/index.ts @@ -399,7 +399,7 @@ class SimpleMetrics implements Metrics, Startable { this.onMetrics(structuredClone(output)) }) .catch(err => { - log.error('could not invoke onMetrics callback', err) + log.error('could not invoke onMetrics callback - %e', err) }) } diff --git a/packages/multistream-select/src/select.ts b/packages/multistream-select/src/select.ts index d877fd4a28..7bddd3f96c 100644 --- a/packages/multistream-select/src/select.ts +++ b/packages/multistream-select/src/select.ts @@ -186,7 +186,7 @@ function optimisticSelect (stream: Stream, protoco // read the negotiation response but don't block more sending negotiate() .catch(err => { - options.log.error('could not finish optimistic protocol negotiation of %s', protocol, err) + options.log.error('could not finish optimistic protocol negotiation of %s - %e', protocol, err) }) } else { yield buf @@ -298,7 +298,7 @@ function optimisticSelect (stream: Stream, protoco // this before closing the readable end of the stream if (!negotiated) { await negotiate().catch(err => { - options.log.error('could not negotiate protocol before close read', err) + options.log.error('could not negotiate protocol before close read - %e', err) }) } @@ -315,7 +315,7 @@ function optimisticSelect (stream: Stream, protoco // this before closing the writable end of the stream if (!negotiated) { await negotiate().catch(err => { - options.log.error('could not negotiate protocol before close write', err) + options.log.error('could not negotiate protocol before close write - %e', err) }) } diff --git a/packages/peer-discovery-bootstrap/src/index.ts b/packages/peer-discovery-bootstrap/src/index.ts index dc7376d2ff..881ee51d5c 100644 --- a/packages/peer-discovery-bootstrap/src/index.ts +++ b/packages/peer-discovery-bootstrap/src/index.ts @@ -154,7 +154,7 @@ class Bootstrap extends TypedEventEmitter implements PeerDi this.timer = setTimeout(() => { void this._discoverBootstrapPeers() .catch(err => { - this.log.error(err) + this.log.error('%e', err) }) }, this.timeout) } @@ -186,7 +186,7 @@ class Bootstrap extends TypedEventEmitter implements PeerDi this.safeDispatchEvent('peer', { detail: peerData }) this.components.connectionManager.openConnection(peerData.id) .catch(err => { - this.log.error('could not dial bootstrap peer %p', peerData.id, err) + this.log.error('could not dial bootstrap peer %p - %e', peerData.id, err) }) } } diff --git a/packages/peer-discovery-mdns/src/mdns.ts b/packages/peer-discovery-mdns/src/mdns.ts index b3f5228943..cde6fb69b7 100644 --- a/packages/peer-discovery-mdns/src/mdns.ts +++ b/packages/peer-discovery-mdns/src/mdns.ts @@ -122,16 +122,16 @@ export class MulticastDNS extends TypedEventEmitter impleme })) } } catch (err) { - this.log.error('Error processing peer response', err) + this.log.error('Error processing peer response - %e', err) } } _onMdnsWarning (err: Error): void { - this.log.error('mdns warning', err) + this.log.error('mdns warning - %e', err) } _onMdnsError (err: Error): void { - this.log.error('mdns error', err) + this.log.error('mdns error - %e', err) } /** diff --git a/packages/peer-discovery-mdns/src/query.ts b/packages/peer-discovery-mdns/src/query.ts index edb780cbe3..211fcc9839 100644 --- a/packages/peer-discovery-mdns/src/query.ts +++ b/packages/peer-discovery-mdns/src/query.ts @@ -74,8 +74,8 @@ export function gotResponse (rsp: ResponsePacket, localPeerName: string, service id: peerIdFromString(peerId), multiaddrs: multiaddrs.map(addr => addr.decapsulateCode(protocols('p2p').code)) } - } catch (e) { - options?.log.error('failed to parse mdns response', e) + } catch (err) { + options?.log.error('failed to parse mdns response - %e', err) } } diff --git a/packages/pnet/src/index.ts b/packages/pnet/src/index.ts index 1cda79c57f..b97297e209 100644 --- a/packages/pnet/src/index.ts +++ b/packages/pnet/src/index.ts @@ -156,7 +156,9 @@ class PreSharedKeyConnectionProtector implements ConnectionProtector { // Decrypt all inbound traffic createUnboxStream(remoteNonce, this.psk), external - ).catch(this.log.error) + ).catch((err) => { + this.log.error('pipe error - %e', err) + }) return { ...connection, diff --git a/packages/protocol-autonat-v2/src/server.ts b/packages/protocol-autonat-v2/src/server.ts index ed1f77dd7c..9ba82960b4 100644 --- a/packages/protocol-autonat-v2/src/server.ts +++ b/packages/protocol-autonat-v2/src/server.ts @@ -192,7 +192,7 @@ export class AutoNATv2Server implements Startable { ...options }) } catch (err: any) { - this.log.error('failed to open connection to %a - %e', err, ma) + this.log.error('failed to open connection to %a - %e', ma, err) return DialStatus.E_DIAL_ERROR } diff --git a/packages/protocol-dcutr/src/dcutr.ts b/packages/protocol-dcutr/src/dcutr.ts index 461e2a4e22..0c3b9569f4 100644 --- a/packages/protocol-dcutr/src/dcutr.ts +++ b/packages/protocol-dcutr/src/dcutr.ts @@ -86,14 +86,14 @@ export class DefaultDCUtRService implements Startable { this.upgradeInbound(connection) .catch(err => { - this.log.error('error during outgoing DCUtR attempt', err) + this.log.error('error during outgoing DCUtR attempt - %e', err) }) } }) await this.registrar.handle(multicodec, (data) => { void this.handleIncomingUpgrade(data.stream, data.connection).catch(err => { - this.log.error('error during incoming DCUtR attempt', err) + this.log.error('error during incoming DCUtR attempt - %e', err) data.stream.abort(err) }) }, { @@ -207,7 +207,7 @@ export class DefaultDCUtRService implements Startable { break } catch (err: any) { - this.log.error('error while attempting DCUtR on attempt %d of %d', i + 1, this.retries, err) + this.log.error('error while attempting DCUtR on attempt %d of %d - %e', i + 1, this.retries, err) stream?.abort(err) if (i === this.retries) { @@ -273,7 +273,7 @@ export class DefaultDCUtRService implements Startable { return true } catch (err) { - this.log.error('unilateral connection upgrade to %p on addresses %a failed', relayedConnection.remotePeer, publicAddresses, err) + this.log.error('unilateral connection upgrade to %p on addresses %a failed - %e', relayedConnection.remotePeer, publicAddresses, err) } } else { this.log('peer %p has no public addresses, not attempting unilateral connection upgrade', relayedConnection.remotePeer) @@ -348,7 +348,7 @@ export class DefaultDCUtRService implements Startable { this.log('DCUtR to %p succeeded via %a, closing relayed connection', relayedConnection.remotePeer, connection.remoteAddr) await relayedConnection.close(options) } catch (err: any) { - this.log.error('incoming DCUtR from %p failed', relayedConnection.remotePeer, err) + this.log.error('incoming DCUtR from %p failed - %e', relayedConnection.remotePeer, err) stream.abort(err) } finally { await stream.close(options) diff --git a/packages/protocol-echo/src/echo.ts b/packages/protocol-echo/src/echo.ts index 8ed0560d11..af978030d6 100644 --- a/packages/protocol-echo/src/echo.ts +++ b/packages/protocol-echo/src/echo.ts @@ -29,7 +29,7 @@ export class Echo implements Startable, EchoInterface { void pipe(stream, stream) .catch((err: any) => { - log.error('error piping stream', err) + log.error('error piping stream - %e', err) }) }, { maxInboundStreams: this.init.maxInboundStreams, diff --git a/packages/protocol-identify/src/identify-push.ts b/packages/protocol-identify/src/identify-push.ts index 189fe165b0..5881f3728e 100644 --- a/packages/protocol-identify/src/identify-push.ts +++ b/packages/protocol-identify/src/identify-push.ts @@ -116,7 +116,7 @@ export class IdentifyPush extends AbstractIdentify implements Startable, Identif }) } catch (err: any) { // Just log errors - log.error('could not push identify update to peer', err) + log.error('could not push identify update to peer - %e', err) stream?.abort(err) } } @@ -156,7 +156,7 @@ export class IdentifyPush extends AbstractIdentify implements Startable, Identif await consumeIdentifyMessage(this.peerStore, this.events, log, connection, message) } catch (err: any) { - log.error('received invalid message', err) + log.error('received invalid message - %e', err) stream.abort(err) return } diff --git a/packages/protocol-identify/src/identify.ts b/packages/protocol-identify/src/identify.ts index edc35b02e8..e390266275 100644 --- a/packages/protocol-identify/src/identify.ts +++ b/packages/protocol-identify/src/identify.ts @@ -36,7 +36,7 @@ export class Identify extends AbstractIdentify implements Startable, IdentifyInt return } - this.log.error('error during identify trigged by connection:open', err) + this.log.error('error during identify trigged by connection:open - %e', err) }) }) } @@ -197,7 +197,7 @@ export class Identify extends AbstractIdentify implements Startable, IdentifyInt signal }) } catch (err: any) { - log.error('could not respond to identify request', err) + log.error('could not respond to identify request - %e', err) stream.abort(err) } } diff --git a/packages/protocol-identify/src/utils.ts b/packages/protocol-identify/src/utils.ts index 046da832c8..a5e76f750d 100644 --- a/packages/protocol-identify/src/utils.ts +++ b/packages/protocol-identify/src/utils.ts @@ -250,7 +250,7 @@ export abstract class AbstractIdentify implements Startable { await this.registrar.handle(this.protocol, (data) => { void this.handleProtocol(data).catch(err => { - this.log.error(err) + this.log.error('%e', err) }) }, { maxInboundStreams: this.maxInboundStreams, diff --git a/packages/protocol-ping/src/ping.ts b/packages/protocol-ping/src/ping.ts index ab6ce1e15b..103f9792f6 100644 --- a/packages/protocol-ping/src/ping.ts +++ b/packages/protocol-ping/src/ping.ts @@ -157,7 +157,7 @@ export class Ping implements Startable, PingInterface { return ms } catch (err: any) { - log.error('error while pinging %p', connection.remotePeer, err) + log.error('error while pinging %p - %e', connection.remotePeer, err) stream?.abort(err) diff --git a/packages/pubsub/src/index.ts b/packages/pubsub/src/index.ts index cb6e0a7bbe..5bb27a1b85 100644 --- a/packages/pubsub/src/index.ts +++ b/packages/pubsub/src/index.ts @@ -247,14 +247,14 @@ export abstract class PubSubBaseProtocol = Pu const peer = this.addPeer(peerId, stream.protocol) await peer.attachOutboundStream(stream) } catch (err: any) { - this.log.error(err) + this.log.error('%e', err) } // Immediately send my own subscriptions to the newly established conn this.send(peerId, { subscriptions: Array.from(this.subscriptions).map(sub => sub.toString()), subscribe: true }) }) .catch(err => { - this.log.error(err) + this.log.error('%e', err) }) } @@ -413,7 +413,7 @@ export abstract class PubSubBaseProtocol = Pu await this.processMessage(from, msg) } catch (err: any) { - this.log.error(err) + this.log.error('%e', err) } })) .catch(err => { this.log(err) }) diff --git a/packages/pubsub/src/peer-streams.ts b/packages/pubsub/src/peer-streams.ts index 44f4f33a00..8553748b86 100644 --- a/packages/pubsub/src/peer-streams.ts +++ b/packages/pubsub/src/peer-streams.ts @@ -147,7 +147,7 @@ export class PeerStreams extends TypedEventEmitter { (source) => lp.encode(source), this._rawOutboundStream ).catch((err: Error) => { - this.log.error(err) + this.log.error('%e', err) }) // Only emit if the connection is new diff --git a/packages/stream-multiplexer-mplex/src/mplex.ts b/packages/stream-multiplexer-mplex/src/mplex.ts index 870ab56f3f..1ab2aab067 100644 --- a/packages/stream-multiplexer-mplex/src/mplex.ts +++ b/packages/stream-multiplexer-mplex/src/mplex.ts @@ -369,7 +369,7 @@ export class MplexStreamMuxer implements StreamMuxer { this.log('unknown message type %s', type) } } catch (err: any) { - this.log.error('error while processing message', err) + this.log.error('error while processing message - %e', err) stream.abort(err) } } diff --git a/packages/transport-circuit-relay-v2/src/server/index.ts b/packages/transport-circuit-relay-v2/src/server/index.ts index 1df2ed553b..3dcf8cb2c6 100644 --- a/packages/transport-circuit-relay-v2/src/server/index.ts +++ b/packages/transport-circuit-relay-v2/src/server/index.ts @@ -153,7 +153,7 @@ class CircuitRelayServer extends TypedEventEmitter implements await this.registrar.handle(RELAY_V2_HOP_CODEC, (data) => { void this.onHop(data).catch(err => { - this.log.error(err) + this.log.error('%e', err) }) }, { maxInboundStreams: this.maxInboundHopStreams, @@ -198,7 +198,7 @@ class CircuitRelayServer extends TypedEventEmitter implements request }, options) } catch (err: any) { - this.log.error('error while handling hop', err) + this.log.error('error while handling hop - %e', err) await pbstr.pb(HopMessage).write({ type: HopMessage.Type.STATUS, status: Status.MALFORMED_MESSAGE @@ -337,7 +337,7 @@ class CircuitRelayServer extends TypedEventEmitter implements request.peer.addrs.forEach(multiaddr) dstPeer = peerIdFromMultihash(Digest.decode(request.peer.id)) } catch (err) { - this.log.error('invalid hop connect request via peer %p %s', connection.remotePeer, err) + this.log.error('invalid hop connect request via peer %p - %e', connection.remotePeer, err) await hopstr.write({ type: HopMessage.Type.STATUS, status: Status.MALFORMED_MESSAGE }, options) return } @@ -417,7 +417,7 @@ class CircuitRelayServer extends TypedEventEmitter implements try { response = await stopstr.read(options) } catch (err) { - this.log.error('error parsing stop message response from %p', connection.remotePeer) + this.log.error('error parsing stop message response from %p - %e', connection.remotePeer, err) } if (response == null) { diff --git a/packages/transport-circuit-relay-v2/src/transport/discovery.ts b/packages/transport-circuit-relay-v2/src/transport/discovery.ts index 302a172c68..ebd77072d6 100644 --- a/packages/transport-circuit-relay-v2/src/transport/discovery.ts +++ b/packages/transport-circuit-relay-v2/src/transport/discovery.ts @@ -195,7 +195,7 @@ export class RelayDiscovery extends TypedEventEmitter impl signal: this.discoveryController.signal }) .catch(err => { - this.log.error('error opening connection to random peer %p', peer.id, err) + this.log.error('error opening connection to random peer %p - %e', peer.id, err) }) } @@ -205,7 +205,7 @@ export class RelayDiscovery extends TypedEventEmitter impl }) .catch(err => { if (!this.discoveryController.signal.aborted) { - this.log.error('failed when finding relays on the network', err) + this.log.error('failed when finding relays on the network - %e', err) } }) } @@ -263,7 +263,7 @@ export class RelayDiscovery extends TypedEventEmitter impl signal: this.discoveryController.signal }) .catch(err => { - this.log.error('error opening connection to discovered peer %p', evt.detail.id, err) + this.log.error('error opening connection to discovered peer %p - %e', evt.detail.id, err) }) } diff --git a/packages/transport-circuit-relay-v2/src/transport/reservation-store.ts b/packages/transport-circuit-relay-v2/src/transport/reservation-store.ts index 28a8198135..a749f9ad12 100644 --- a/packages/transport-circuit-relay-v2/src/transport/reservation-store.ts +++ b/packages/transport-circuit-relay-v2/src/transport/reservation-store.ts @@ -199,7 +199,7 @@ export class ReservationStore extends TypedEventEmitter this.#checkReservationCount() }) .catch(err => { - this.log.error(err) + this.log.error('%e', err) }) } @@ -484,7 +484,7 @@ export class ReservationStore extends TypedEventEmitter } const errMsg = `reservation failed with status ${response.status ?? 'undefined'}` - this.log.error(errMsg) + this.log.error('%s', errMsg) throw new Error(errMsg) } diff --git a/packages/transport-circuit-relay-v2/src/transport/transport.ts b/packages/transport-circuit-relay-v2/src/transport/transport.ts index 4f68693b8d..5b1c12dbf6 100644 --- a/packages/transport-circuit-relay-v2/src/transport/transport.ts +++ b/packages/transport-circuit-relay-v2/src/transport/transport.ts @@ -89,7 +89,7 @@ export class CircuitRelayTransport implements Transport this.reservationStore.addRelay(evt.detail, 'discovered') .catch(err => { if (err.name !== 'HadEnoughRelaysError' && err.name !== 'RelayQueueFullError') { - this.log.error('could not add discovered relay %p', evt.detail, err) + this.log.error('could not add discovered relay %p - %e', evt.detail, err) } }) }) @@ -137,7 +137,7 @@ export class CircuitRelayTransport implements Transport void this.onStop(data, signal) .catch(err => { - this.log.error('error while handling STOP protocol', err) + this.log.error('error while handling STOP protocol - %e', err) data.stream.abort(err) }) .finally(() => { @@ -168,7 +168,7 @@ export class CircuitRelayTransport implements Transport async dial (ma: Multiaddr, options: DialTransportOptions): Promise { if (ma.protoCodes().filter(code => code === CIRCUIT_PROTO_CODE).length !== 1) { const errMsg = 'Invalid circuit relay address' - this.log.error(errMsg, ma) + this.log.error('%s %a', errMsg, ma) throw new DialError(errMsg) } @@ -180,9 +180,9 @@ export class CircuitRelayTransport implements Transport const destinationId = destinationAddr.getPeerId() if (relayId == null || destinationId == null) { - const errMsg = `ircuit relay dial to ${ma.toString()} failed as address did not have both relay and destination PeerIDs` - this.log.error(`c${errMsg}`) - throw new DialError(`C${errMsg}`) + const errMsg = `circuit relay dial to ${ma.toString()} faioed as address did not have both relay and destination PeerIDs` + this.log.error('%s ', errMsg) + throw new DialError(errMsg) } const relayPeer = peerIdFromString(relayId) @@ -247,7 +247,7 @@ export class CircuitRelayTransport implements Transport return conn } catch (err: any) { - this.log.error('circuit relay dial to destination %p via relay %p failed', destinationPeer, relayPeer, err) + this.log.error('circuit relay dial to destination %p via relay %p failed - %e', destinationPeer, relayPeer, err) stream?.abort(err) throw err @@ -299,7 +299,7 @@ export class CircuitRelayTransport implements Transport await this.transportManager.listen([connection.remoteAddr.encapsulate('/p2p-circuit')]) } catch (err: any) { // failed to refresh our hitherto unknown relay reservation but allow the connection attempt anyway - this.log.error('failed to listen on a relay peer we were dialed via but did not have a reservation on', err) + this.log.error('failed to listen on a relay peer we were dialed via but did not have a reservation on - %e', err) } } diff --git a/packages/transport-circuit-relay-v2/src/utils.ts b/packages/transport-circuit-relay-v2/src/utils.ts index 8ac31b0d09..b7ce7990a0 100644 --- a/packages/transport-circuit-relay-v2/src/utils.ts +++ b/packages/transport-circuit-relay-v2/src/utils.ts @@ -27,7 +27,7 @@ async function * countStreamBytes (source: Source, yield buf.subarray(0, remaining) } } catch (err: any) { - options.log.error(err) + options.log.error('%e', err) } throw new TransferLimitError(`data limit of ${limitBytes} bytes exceeded`) @@ -75,7 +75,7 @@ export function createLimitedRelay (src: Stream, dst: Stream, abortSignal: Abort void dst.sink(dataLimit == null ? src.source : countStreamBytes(src.source, dataLimit, options)) .catch(err => { - options.log.error('error while relaying streams src -> dst', err) + options.log.error('error while relaying streams src -> dst - %e', err) abortStreams(err) }) .finally(() => { @@ -98,7 +98,7 @@ export function createLimitedRelay (src: Stream, dst: Stream, abortSignal: Abort void src.sink(dataLimit == null ? dst.source : countStreamBytes(dst.source, dataLimit, options)) .catch(err => { - options.log.error('error while relaying streams dst -> src', err) + options.log.error('error while relaying streams dst -> src - %e', err) abortStreams(err) }) .finally(() => { diff --git a/packages/transport-tcp/src/listener.ts b/packages/transport-tcp/src/listener.ts index 2114455204..68e5aa04a5 100644 --- a/packages/transport-tcp/src/listener.ts +++ b/packages/transport-tcp/src/listener.ts @@ -171,7 +171,7 @@ export class TCPListener extends TypedEventEmitter implements Li direction: 'inbound' }) } catch (err: any) { - this.log.error('inbound connection failed', err) + this.log.error('inbound connection failed - %e', err) this.metrics.errors?.increment({ [`${this.addr} inbound_to_connection`]: true }) socket.destroy() return @@ -199,9 +199,9 @@ export class TCPListener extends TypedEventEmitter implements Li // resume() will be called again every time a connection is // dropped, which acts as an eventual retry mechanism. // onListenError allows the consumer act on this. - this.resume().catch(e => { - this.log.error('error attempting to listen server once connection count under limit', e) - this.context.closeServerOnMaxConnections?.onListenError?.(e as Error) + this.resume().catch(err => { + this.log.error('error attempting to listen server once connection count under limit - %e', err) + this.context.closeServerOnMaxConnections?.onListenError?.(err as Error) }) } }) @@ -214,7 +214,7 @@ export class TCPListener extends TypedEventEmitter implements Li } }) .catch(async err => { - this.log.error('inbound connection upgrade failed', err) + this.log.error('inbound connection upgrade failed - %e', err) this.metrics.errors?.increment({ [`${this.addr} inbound_upgrade`]: true }) this.sockets.delete(socket) maConn.abort(err) diff --git a/packages/transport-tcp/src/tcp.ts b/packages/transport-tcp/src/tcp.ts index 9856d1fad7..3443a5134c 100644 --- a/packages/transport-tcp/src/tcp.ts +++ b/packages/transport-tcp/src/tcp.ts @@ -101,7 +101,7 @@ export class TCP implements Transport { return await options.upgrader.upgradeOutbound(maConn, options) } catch (err: any) { this.metrics?.errors.increment({ outbound_upgrade: true }) - this.log.error('error upgrading outbound connection', err) + this.log.error('error upgrading outbound connection - %e', err) maConn.abort(err) throw err } diff --git a/packages/transport-webrtc/src/maconn.ts b/packages/transport-webrtc/src/maconn.ts index 02a41255df..a53ef53ea2 100644 --- a/packages/transport-webrtc/src/maconn.ts +++ b/packages/transport-webrtc/src/maconn.ts @@ -92,7 +92,7 @@ export class WebRTCMultiaddrConnection implements MultiaddrConnection { } abort (err: Error): void { - this.log.error('closing connection due to error', err) + this.log.error('closing connection due to error - %e', err) this.peerConnection.close() this.timeline.close = Date.now() diff --git a/packages/transport-webrtc/src/private-to-private/initiate-connection.ts b/packages/transport-webrtc/src/private-to-private/initiate-connection.ts index c78b1a9646..25789ec32f 100644 --- a/packages/transport-webrtc/src/private-to-private/initiate-connection.ts +++ b/packages/transport-webrtc/src/private-to-private/initiate-connection.ts @@ -97,16 +97,16 @@ export async function initiateConnection ({ rtcConfiguration, dataChannel, signa signal }) .catch(err => { - log.error('error sending ICE candidate', err) + log.error('error sending ICE candidate - %e', err) }) } peerConnection.onicecandidateerror = (event) => { - log.error('initiator ICE candidate error', event) + log.error('initiator ICE candidate error - %e', event) } // create an offer const offerSdp = await peerConnection.createOffer().catch(err => { - log.error('could not execute createOffer', err) + log.error('could not execute createOffer - %e', err) throw new SDPHandshakeFailedError('Failed to set createOffer') }) @@ -121,7 +121,7 @@ export async function initiateConnection ({ rtcConfiguration, dataChannel, signa // set offer as local description await peerConnection.setLocalDescription(offerSdp).catch(err => { - log.error('could not execute setLocalDescription', err) + log.error('could not execute setLocalDescription - %e', err) throw new SDPHandshakeFailedError('Failed to set localDescription') }) @@ -142,7 +142,7 @@ export async function initiateConnection ({ rtcConfiguration, dataChannel, signa const answerSdp = new RTCSessionDescription({ type: 'answer', sdp: answerMessage.data }) await peerConnection.setRemoteDescription(answerSdp).catch(err => { - log.error('could not execute setRemoteDescription', err) + log.error('could not execute setRemoteDescription - %e', err) throw new SDPHandshakeFailedError('Failed to set remoteDescription') }) @@ -175,7 +175,7 @@ export async function initiateConnection ({ rtcConfiguration, dataChannel, signa muxerFactory } } catch (err: any) { - log.error('outgoing signaling error', err) + log.error('outgoing signaling error - %e', err) peerConnection.close() stream.abort(err) diff --git a/packages/transport-webrtc/src/private-to-private/signaling-stream-handler.ts b/packages/transport-webrtc/src/private-to-private/signaling-stream-handler.ts index 34a31da8ed..1c33abc9b4 100644 --- a/packages/transport-webrtc/src/private-to-private/signaling-stream-handler.ts +++ b/packages/transport-webrtc/src/private-to-private/signaling-stream-handler.ts @@ -37,7 +37,7 @@ export async function handleIncomingStream ({ peerConnection, stream, signal, co signal }) .catch(err => { - log.error('error sending ICE candidate', err) + log.error('error sending ICE candidate - %e', err) }) } @@ -60,13 +60,13 @@ export async function handleIncomingStream ({ peerConnection, stream, signal, co }) await peerConnection.setRemoteDescription(offer).catch(err => { - log.error('could not execute setRemoteDescription', err) + log.error('could not execute setRemoteDescription - %e', err) throw new SDPHandshakeFailedError('Failed to set remoteDescription') }) // create and write an SDP answer const answer = await peerConnection.createAnswer().catch(err => { - log.error('could not execute createAnswer', err) + log.error('could not execute createAnswer - %e', err) throw new SDPHandshakeFailedError('Failed to create answer') }) @@ -78,7 +78,7 @@ export async function handleIncomingStream ({ peerConnection, stream, signal, co }) await peerConnection.setLocalDescription(answer).catch(err => { - log.error('could not execute setLocalDescription', err) + log.error('could not execute setLocalDescription - %e', err) throw new SDPHandshakeFailedError('Failed to set localDescription') }) @@ -92,7 +92,7 @@ export async function handleIncomingStream ({ peerConnection, stream, signal, co }) } catch (err: any) { if (getConnectionState(peerConnection) !== 'connected') { - log.error('error while handling signaling stream from peer %a', connection.remoteAddr, err) + log.error('error while handling signaling stream from peer %a - %e', connection.remoteAddr, err) peerConnection.close() throw err diff --git a/packages/transport-webrtc/src/private-to-private/transport.ts b/packages/transport-webrtc/src/private-to-private/transport.ts index 19478c0a87..af98819444 100644 --- a/packages/transport-webrtc/src/private-to-private/transport.ts +++ b/packages/transport-webrtc/src/private-to-private/transport.ts @@ -121,7 +121,7 @@ export class WebRTCTransport implements Transport, Startable { this._onProtocol(data, signal) .catch(err => { - this.log.error('failed to handle incoming connect from %p', data.connection.remotePeer, err) + this.log.error('failed to handle incoming connect from %p - %e', data.connection.remotePeer, err) }) .finally(() => { signal.clear() @@ -239,7 +239,7 @@ export class WebRTCTransport implements Transport, Startable { // close the connection on shut down this._closeOnShutdown(peerConnection, webRTCConn) } catch (err: any) { - this.log.error('incoming signaling error', err) + this.log.error('incoming signaling error - %e', err) peerConnection.close() stream.abort(err) @@ -252,7 +252,7 @@ export class WebRTCTransport implements Transport, Startable { const shutDownListener = (): void => { webRTCConn.close() .catch(err => { - this.log.error('could not close WebRTCMultiaddrConnection', err) + this.log.error('could not close WebRTCMultiaddrConnection - %e', err) }) } diff --git a/packages/transport-webrtc/src/private-to-private/util.ts b/packages/transport-webrtc/src/private-to-private/util.ts index e2af91f898..f78016da91 100644 --- a/packages/transport-webrtc/src/private-to-private/util.ts +++ b/packages/transport-webrtc/src/private-to-private/util.ts @@ -62,11 +62,11 @@ export const readCandidatesUntilConnected = async (pc: RTCPeerConnection, stream options.onProgress?.(new CustomProgressEvent('webrtc:add-ice-candidate', candidate.candidate)) await pc.addIceCandidate(candidate) } catch (err) { - options.log.error('%s bad candidate received', options.direction, candidateInit, err) + options.log.error('%s bad candidate received %o - %e', options.direction, candidateInit, err) } } } catch (err) { - options.log.error('%s error parsing ICE candidate', options.direction, err) + options.log.error('%s error parsing ICE candidate - %e', options.direction, err) if (options.signal?.aborted === true && getConnectionState(pc) !== 'connected') { throw err diff --git a/packages/transport-webrtc/src/private-to-public/listener.ts b/packages/transport-webrtc/src/private-to-public/listener.ts index dd8177ed1d..6293ed7382 100644 --- a/packages/transport-webrtc/src/private-to-public/listener.ts +++ b/packages/transport-webrtc/src/private-to-public/listener.ts @@ -156,7 +156,7 @@ export class WebRTCDirectListener extends TypedEventEmitter impl this.incomingConnection(ufrag, remoteHost, remotePort, signal) .catch(err => { - this.log.error('error processing incoming STUN request', err) + this.log.error('error processing incoming STUN request - %e', err) }) .finally(() => { signal.clear() diff --git a/packages/transport-webrtc/src/private-to-public/utils/connect.ts b/packages/transport-webrtc/src/private-to-public/utils/connect.ts index b568a273db..b6ab9dd7cb 100644 --- a/packages/transport-webrtc/src/private-to-public/utils/connect.ts +++ b/packages/transport-webrtc/src/private-to-public/utils/connect.ts @@ -138,7 +138,7 @@ export async function connect (peerConnection: DirectRTCPeerConnection, ufrag: s case 'disconnected': case 'closed': maConn.close().catch((err) => { - options.log.error('error closing connection', err) + options.log.error('error closing connection - %e', err) maConn.abort(err) }) break diff --git a/packages/transport-webrtc/src/stream.ts b/packages/transport-webrtc/src/stream.ts index 918a138ce0..c344dc8b06 100644 --- a/packages/transport-webrtc/src/stream.ts +++ b/packages/transport-webrtc/src/stream.ts @@ -74,7 +74,7 @@ export class WebRTCStream extends AbstractStream { milliseconds: this.finAckTimeout }) } catch (err) { - this.log.error('error receiving FIN_ACK', err) + this.log.error('error receiving FIN_ACK - %e', err) } }) .then(() => { @@ -85,7 +85,7 @@ export class WebRTCStream extends AbstractStream { originalOnEnd?.(err) }) .catch(err => { - this.log.error('error ending stream', err) + this.log.error('error ending stream - %e', err) }) .finally(() => { this.channel.close() @@ -142,7 +142,7 @@ export class WebRTCStream extends AbstractStream { this.receiveFinAck.resolve() void this.close().catch(err => { - this.log.error('error closing stream after channel closed', err) + this.log.error('error closing stream after channel closed - %e', err) }) } @@ -180,7 +180,7 @@ export class WebRTCStream extends AbstractStream { } }) .catch(err => { - this.log.error('error processing incoming data channel messages', err) + this.log.error('error processing incoming data channel messages - %e', err) }) } @@ -236,7 +236,7 @@ export class WebRTCStream extends AbstractStream { // send message without copying data this.channel.send(data.subarray()) } catch (err: any) { - this.log.error('error while sending message', err) + this.log.error('error while sending message - %e', err) } } @@ -286,7 +286,7 @@ export class WebRTCStream extends AbstractStream { errorName: 'FinAckNotReceivedError' }) } catch (err) { - this.log.error('failed to await FIN_ACK', err) + this.log.error('failed to await FIN_ACK - %e', err) } } else { this.log.trace('sending FIN failed, not awaiting FIN_ACK') @@ -320,7 +320,7 @@ export class WebRTCStream extends AbstractStream { this.log.trace('sending FIN_ACK') void this._sendFlag(Message.Flag.FIN_ACK) .catch(err => { - this.log.error('error sending FIN_ACK immediately', err) + this.log.error('error sending FIN_ACK immediately - %e', err) }) } diff --git a/packages/transport-webrtc/src/util.ts b/packages/transport-webrtc/src/util.ts index 210ef9e829..10546c90e6 100644 --- a/packages/transport-webrtc/src/util.ts +++ b/packages/transport-webrtc/src/util.ts @@ -56,7 +56,7 @@ export function drainAndClose (channel: RTCDataChannel, direction: string, drain } }) .catch(err => { - options.log.error('error closing outbound stream', err) + options.log.error('error closing outbound stream - %e', err) }) } diff --git a/packages/transport-websockets/src/index.ts b/packages/transport-websockets/src/index.ts index 0785a134b6..308df3a16f 100644 --- a/packages/transport-websockets/src/index.ts +++ b/packages/transport-websockets/src/index.ts @@ -146,7 +146,7 @@ class WebSockets implements Transport { // information about what happened // https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/error_event const err = new ConnectionFailedError(`Could not connect to ${ma.toString()}`) - this.log.error('connection error:', err) + this.log.error('connection error - %e', err) this.metrics?.dialerEvents.increment({ error: true }) errorPromise.reject(err) }) @@ -161,7 +161,7 @@ class WebSockets implements Transport { rawSocket.close() .catch(err => { - this.log.error('error closing raw socket', err) + this.log.error('error closing raw socket - %e', err) }) throw err diff --git a/packages/transport-websockets/src/listener.ts b/packages/transport-websockets/src/listener.ts index 0bb1c39c7d..2150b95a8d 100644 --- a/packages/transport-websockets/src/listener.ts +++ b/packages/transport-websockets/src/listener.ts @@ -207,7 +207,7 @@ export class WebSocketListener extends TypedEventEmitter impleme metricPrefix: `${this.addr} ` }) } catch (err: any) { - this.log.error('inbound connection failed', err) + this.log.error('inbound connection failed - %e', err) this.metrics.errors?.increment({ [`${this.addr} inbound_to_connection`]: true }) socket.close() return @@ -224,7 +224,7 @@ export class WebSocketListener extends TypedEventEmitter impleme await maConn.close() .catch(err => { - this.log.error('inbound connection failed to close after upgrade failed', err) + this.log.error('inbound connection failed to close after upgrade failed - %e', err) this.metrics.errors?.increment({ [`${this.addr} inbound_closing_failed`]: true }) }) }) diff --git a/packages/transport-websockets/src/socket-to-conn.ts b/packages/transport-websockets/src/socket-to-conn.ts index 8e5ddbbeb7..5546b4fd2f 100644 --- a/packages/transport-websockets/src/socket-to-conn.ts +++ b/packages/transport-websockets/src/socket-to-conn.ts @@ -33,7 +33,7 @@ export function socketToMaConn (stream: DuplexWebSocket, remoteAddr: Multiaddr, })()) } catch (err: any) { if (err.type !== 'aborted') { - maConn.log.error(err) + maConn.log.error('%e', err) } } }, diff --git a/packages/transport-webtransport/src/index.ts b/packages/transport-webtransport/src/index.ts index 59f5a1eac2..ef5696daeb 100644 --- a/packages/transport-webtransport/src/index.ts +++ b/packages/transport-webtransport/src/index.ts @@ -160,7 +160,7 @@ class WebTransportTransport implements Transport { this.metrics?.dialerEvents.increment({ [metric]: true }) wt.close() } catch (err) { - this.log.error('error closing wt session', err) + this.log.error('error closing wt session - %e', err) } finally { // This is how we specify the connection is closed and shouldn't be used. if (maConn != null) { @@ -196,7 +196,7 @@ class WebTransportTransport implements Transport { // this promise resolves/throws when the session is closed wt.closed.catch((err: Error) => { - this.log.error('error on remote wt session close', err) + this.log.error('error on remote wt session close - %e', err) }) .finally(() => { cleanUpWTSession('remote_close') @@ -235,7 +235,7 @@ class WebTransportTransport implements Transport { skipProtection: true }) } catch (err: any) { - this.log.error('caught wt session err', err) + this.log.error('caught wt session err - %e', err) if (authenticated) { cleanUpWTSession('upgrade_error') @@ -282,7 +282,7 @@ class WebTransportTransport implements Transport { const buf = chunk instanceof Uint8Array ? chunk : chunk.subarray() writer.write(buf).catch(err => { - this.log.error('could not write chunk during authentication of WebTransport stream', err) + this.log.error('could not write chunk during authentication of WebTransport stream - %e', err) }) } } diff --git a/packages/transport-webtransport/src/muxer.ts b/packages/transport-webtransport/src/muxer.ts index 50d725f2f0..1954062617 100644 --- a/packages/transport-webtransport/src/muxer.ts +++ b/packages/transport-webtransport/src/muxer.ts @@ -51,7 +51,7 @@ export function webtransportMuxer (wt: Pick { - log.error('could not create a new stream', err) + log.error('could not create a new stream - %e', err) }) const muxer: StreamMuxer = { @@ -89,7 +89,7 @@ export function webtransportMuxer (wt: Pick { - init.log.error('error reading from stream', err) + init.log.error('error reading from stream - %e', err) this.abort(err) }) .finally(() => { @@ -66,7 +66,7 @@ class WebTransportStream extends AbstractStream { // https://streams.spec.whatwg.org/#example-manual-write-dont-await this.writer.write(chunk) .catch(err => { - this.log.error('error sending stream data', err) + this.log.error('error sending stream data - %e', err) }) } } diff --git a/packages/utils/src/abstract-stream.ts b/packages/utils/src/abstract-stream.ts index 19b9569c29..eb4e6b7b91 100644 --- a/packages/utils/src/abstract-stream.ts +++ b/packages/utils/src/abstract-stream.ts @@ -375,7 +375,7 @@ export abstract class AbstractStream implements Stream { if (isPromise(res)) { res.catch((err) => { - this.log.error('error sending reset message', err) + this.log.error('error sending reset message - %e', err) }) } diff --git a/packages/utils/src/close-source.ts b/packages/utils/src/close-source.ts index 34738838d5..855bc7e964 100644 --- a/packages/utils/src/close-source.ts +++ b/packages/utils/src/close-source.ts @@ -8,7 +8,7 @@ export function closeSource (source: Source, log: Logger): void { if (isPromise(res)) { res.catch(err => { - log.error('could not cause iterator to return', err) + log.error('could not cause iterator to return - %e', err) }) } } From e72e9a930feee333c782dafd418370fb45b7261a Mon Sep 17 00:00:00 2001 From: gulshanpr Date: Thu, 11 Sep 2025 15:44:55 +0530 Subject: [PATCH 2/8] fix: casing, added context in error logging --- .../connection-encrypter-plaintext/src/index.ts | 2 +- packages/connection-encrypter-tls/src/tls.ts | 2 +- packages/kad-dht/src/content-fetching/index.ts | 4 ++-- packages/kad-dht/src/routing-table/refresh.ts | 8 ++++---- packages/kad-dht/src/rpc/handlers/put-value.ts | 6 ++---- packages/keychain/src/keychain.ts | 2 +- packages/libp2p-daemon-client/src/index.ts | 4 ++-- packages/libp2p-daemon-server/src/dht.ts | 8 ++++---- packages/libp2p-daemon-server/src/index.ts | 14 +++++++------- packages/libp2p-daemon-server/src/pubsub.ts | 8 ++++---- packages/libp2p/src/connection-manager/index.ts | 2 +- .../src/connection-manager/reconnect-queue.ts | 4 ++-- packages/libp2p/src/libp2p.ts | 4 ++-- packages/libp2p/src/peer-routing.ts | 2 +- packages/libp2p/src/upgrader.ts | 4 ++-- packages/logger/README.md | 2 +- packages/logger/src/index.ts | 2 +- packages/peer-discovery-bootstrap/src/index.ts | 6 +++--- packages/peer-discovery-mdns/src/mdns.ts | 2 +- packages/protocol-autonat/src/autonat.ts | 2 +- packages/pubsub/src/index.ts | 6 +++--- packages/pubsub/src/peer-streams.ts | 2 +- packages/stream-multiplexer-yamux/src/muxer.ts | 4 ++-- .../src/transport/index.ts | 6 +++--- .../src/transport/reservation-store.ts | 2 +- .../src/private-to-private/initiate-connection.ts | 4 ++-- .../src/private-to-private/transport.ts | 2 +- packages/utils/src/mock-muxer.ts | 2 +- 28 files changed, 57 insertions(+), 59 deletions(-) diff --git a/packages/connection-encrypter-plaintext/src/index.ts b/packages/connection-encrypter-plaintext/src/index.ts index 90c89c3021..d809f2b9fa 100644 --- a/packages/connection-encrypter-plaintext/src/index.ts +++ b/packages/connection-encrypter-plaintext/src/index.ts @@ -104,7 +104,7 @@ class Plaintext implements ConnectionEncrypter { throw new InvalidCryptoExchangeError('Public key did not match id') } } catch (err: any) { - log.error('Invalid public key - %e', err) + log.error('invalid public key - %e', err) throw new InvalidCryptoExchangeError(`Invalid public key - ${err.message}`) } diff --git a/packages/connection-encrypter-tls/src/tls.ts b/packages/connection-encrypter-tls/src/tls.ts index c76eba7eac..9ce4830d8f 100644 --- a/packages/connection-encrypter-tls/src/tls.ts +++ b/packages/connection-encrypter-tls/src/tls.ts @@ -179,7 +179,7 @@ export class TLS implements ConnectionEncrypter { if (streamMuxer == null) { const err = new InvalidCryptoExchangeError(`Selected muxer ${socket.alpnProtocol} did not exist`) - log.error(`Selected muxer ${socket.alpnProtocol} did not exist - %e`, err) + log.error(`selected muxer ${socket.alpnProtocol} did not exist - %e`, err) connection.abort(err) reject(err) diff --git a/packages/kad-dht/src/content-fetching/index.ts b/packages/kad-dht/src/content-fetching/index.ts index 6bebce3189..c858c2dda0 100644 --- a/packages/kad-dht/src/content-fetching/index.ts +++ b/packages/kad-dht/src/content-fetching/index.ts @@ -106,7 +106,7 @@ export class ContentFetching { this.log(`Storing corrected record for key ${dsKey.toString()}`) await this.components.datastore.put(dsKey, fixupRec.subarray(), options) } catch (err: any) { - this.log.error('Failed error correcting self - %e', err) + this.log.error('failed error correcting self - %e', err) } continue @@ -132,7 +132,7 @@ export class ContentFetching { throw new QueryError('Could not send correction') } - this.log.error('Failed error correcting entry') + this.log.error('failed error correcting entry') } } diff --git a/packages/kad-dht/src/routing-table/refresh.ts b/packages/kad-dht/src/routing-table/refresh.ts index 29a71aab9e..f740ed2211 100644 --- a/packages/kad-dht/src/routing-table/refresh.ts +++ b/packages/kad-dht/src/routing-table/refresh.ts @@ -107,16 +107,16 @@ export class RoutingTableRefresh { try { await this._refreshCommonPrefixLength(n, lastRefresh, force, options) } catch (err: any) { - this.log.error('%e', err) + this.log.error('failed to refresh entries with common prefix length %d - %e', n, err) } } } } catch (err: any) { - this.log.error('%e', err) + this.log.error('failed to refresh entries with common prefix length - %e', err) } }) ).catch(err => { - this.log.error('%e', err) + this.log.error('failed to refresh table - %e', err) }).then(() => { this.refreshTimeoutId = setTimeout(this.refreshTable, this.refreshInterval) @@ -124,7 +124,7 @@ export class RoutingTableRefresh { this.refreshTimeoutId.unref() } }).catch(err => { - this.log.error('%e', err) + this.log.error('failed to set refresh timeout - %e', err) }) } diff --git a/packages/kad-dht/src/rpc/handlers/put-value.ts b/packages/kad-dht/src/rpc/handlers/put-value.ts index 6d7453b84f..0cb9649bed 100644 --- a/packages/kad-dht/src/rpc/handlers/put-value.ts +++ b/packages/kad-dht/src/rpc/handlers/put-value.ts @@ -39,10 +39,8 @@ export class PutValueHandler implements DHTMessageHandler { this.log('%p asked us to store value for key %b', peerId, key) if (msg.record == null) { - const errMsg = `Empty record from: ${peerId.toString()}` - - this.log.error('%s', errMsg) - throw new InvalidMessageError(errMsg) + this.log.error('empty record from %p', peerId) + throw new InvalidMessageError(`Empty record from: ${peerId}`) } try { diff --git a/packages/keychain/src/keychain.ts b/packages/keychain/src/keychain.ts index 8e2886c168..358e0d21f9 100644 --- a/packages/keychain/src/keychain.ts +++ b/packages/keychain/src/keychain.ts @@ -171,7 +171,7 @@ export class Keychain implements KeychainInterface { return JSON.parse(uint8ArrayToString(res)) } catch (err: any) { await randomDelay() - this.log.error('%e', err) + this.log.error('could not read key from datastore - %e', err) throw new NotFoundError(`Key '${name}' does not exist.`) } } diff --git a/packages/libp2p-daemon-client/src/index.ts b/packages/libp2p-daemon-client/src/index.ts index f867b4b248..54cbfb42ac 100644 --- a/packages/libp2p-daemon-client/src/index.ts +++ b/packages/libp2p-daemon-client/src/index.ts @@ -256,11 +256,11 @@ class Client implements DaemonClient { .finally(() => { connection.close() .catch(err => { - log.error(err) + log.error('error closing connection - %e', err) }) listener.close() .catch(err => { - log.error(err) + log.error('error closing connection - %e', err) }) }) } diff --git a/packages/libp2p-daemon-server/src/dht.ts b/packages/libp2p-daemon-server/src/dht.ts index 57536dbc53..4321e6692e 100644 --- a/packages/libp2p-daemon-server/src/dht.ts +++ b/packages/libp2p-daemon-server/src/dht.ts @@ -30,7 +30,7 @@ export class DHTOperations { await drain(this.dht.provide(cid)) yield OkResponse() } catch (err: any) { - log.error(err) + log.error('failed to provide CID %s - %o', cid, err) yield ErrorResponse(err) } } @@ -73,7 +73,7 @@ export class DHTOperations { } } } catch (err: any) { - log.error(err) + log.error('error getting value for key %o - %e', err) yield ErrorResponse(err) } } @@ -84,7 +84,7 @@ export class DHTOperations { yield OkResponse() } catch (err: any) { - log.error(err) + log.error('error putting value %o for key %o - %e', err) yield ErrorResponse(err) } } @@ -107,7 +107,7 @@ export class DHTOperations { throw new Error('Peer not found') } catch (err: any) { - log.error(err) + log.error('peer not found %p - %e', peerId, err) yield ErrorResponse(err) } } diff --git a/packages/libp2p-daemon-server/src/index.ts b/packages/libp2p-daemon-server/src/index.ts index 6fc9990e84..0746e0442c 100644 --- a/packages/libp2p-daemon-server/src/index.ts +++ b/packages/libp2p-daemon-server/src/index.ts @@ -179,7 +179,7 @@ export class Server implements Libp2pServer { stream ) } catch (err: any) { - log.error(err) + log.error('error handling stream handler - %e', err) conn?.abort(err) } finally { @@ -206,7 +206,7 @@ export class Server implements Libp2pServer { _onExit (): void { void this.stop({ exit: true }).catch(err => { - log.error(err) + log.error('failed to stop daemon during exit - %e', err) }) } @@ -262,7 +262,7 @@ export class Server implements Libp2pServer { throw new Error('ERR_INVALID_REQUEST_TYPE') } } catch (err: any) { - log.error(err) + log.error('error handling peerstore request - %e', err) yield ErrorResponse(err) } } @@ -305,7 +305,7 @@ export class Server implements Libp2pServer { throw new Error('ERR_INVALID_REQUEST_TYPE') } } catch (err: any) { - log.error(err) + log.error('error handling pubsub request - %e', err) yield ErrorResponse(err) } } @@ -373,7 +373,7 @@ export class Server implements Libp2pServer { throw new Error('ERR_INVALID_REQUEST_TYPE') } } catch (err: any) { - log.error(err) + log.error('error handling DHT request - %e', err) yield ErrorResponse(err) } } @@ -521,7 +521,7 @@ export class Server implements Libp2pServer { throw new Error('ERR_INVALID_REQUEST_TYPE') } } catch (err: any) { - log.error(err) + log.error('error handling incoming connection - %e', err) // recreate pb stream in case the original was unwrapped already const conn = pb.unwrap() @@ -547,7 +547,7 @@ export class Server implements Libp2pServer { } }) .catch(err => { - log.error('error handling incoming connection', err) + log.error('error handling incoming connection - %e', err) }) } } diff --git a/packages/libp2p-daemon-server/src/pubsub.ts b/packages/libp2p-daemon-server/src/pubsub.ts index ba19fcca82..b53f94a1ef 100644 --- a/packages/libp2p-daemon-server/src/pubsub.ts +++ b/packages/libp2p-daemon-server/src/pubsub.ts @@ -34,7 +34,7 @@ export class PubSubOperations { } }) } catch (err: any) { - log.error(err) + log.error('failed to get pubsub topics - %e', err) yield ErrorResponse(err) } } @@ -71,7 +71,7 @@ export class PubSubOperations { yield OkResponse() yield * onMessage } catch (err: any) { - log.error(err) + log.error('failed to subscribe to topic %s - %e', topic, err) yield ErrorResponse(err) } } @@ -81,7 +81,7 @@ export class PubSubOperations { await this.pubsub.publish(topic, data) yield OkResponse() } catch (err: any) { - log.error(err) + log.error('failed to publish message to topic %s - %e', topic, err) yield ErrorResponse(err) } } @@ -95,7 +95,7 @@ export class PubSubOperations { } }) } catch (err: any) { - log.error(err) + log.error('failed to list peers for topic %s - %e', topic, err) yield ErrorResponse(err) } } diff --git a/packages/libp2p/src/connection-manager/index.ts b/packages/libp2p/src/connection-manager/index.ts index 3833e6d0d9..b473b389e1 100644 --- a/packages/libp2p/src/connection-manager/index.ts +++ b/packages/libp2p/src/connection-manager/index.ts @@ -458,7 +458,7 @@ export class DefaultConnectionManager implements ConnectionManager, Startable { onConnect (evt: CustomEvent): void { void this._onConnect(evt).catch(err => { - this.log.error('%e', err) + this.log.error('could not connect - %e', err) }) } diff --git a/packages/libp2p/src/connection-manager/reconnect-queue.ts b/packages/libp2p/src/connection-manager/reconnect-queue.ts index 2bd5de8cb0..70a0d6562a 100644 --- a/packages/libp2p/src/connection-manager/reconnect-queue.ts +++ b/packages/libp2p/src/connection-manager/reconnect-queue.ts @@ -139,13 +139,13 @@ export class ReconnectQueue implements Startable { keepAlivePeers.map(async peer => { await this.connectionManager.openConnection(peer.id) .catch(err => { - this.log.error('%e', err) + this.log.error('could not open connection to keepalive peer - %e', err) }) }) ) }) .catch(err => { - this.log.error('%e', err) + this.log.error('error reconnect to peers after start - %e', err) }) } diff --git a/packages/libp2p/src/libp2p.ts b/packages/libp2p/src/libp2p.ts index 4e4837fa80..24d5b06f49 100644 --- a/packages/libp2p/src/libp2p.ts +++ b/packages/libp2p/src/libp2p.ts @@ -239,7 +239,7 @@ export class Libp2p extends TypedEventEmitter this.safeDispatchEvent('start', { detail: this }) this.log('libp2p has started') } catch (err: any) { - this.log.error('An error occurred starting libp2p - %e', err) + this.log.error('an error occurred starting libp2p - %e', err) // set status to 'started' so this.stop() will stop any running components this.status = 'started' await this.stop() @@ -428,6 +428,6 @@ export class Libp2p extends TypedEventEmitter void this.components.peerStore.merge(peer.id, { multiaddrs: peer.multiaddrs }) - .catch(err => { this.log.error('%e', err) }) + .catch(err => { this.log.error('could not update multiaddrs of discovered peer - %e', err) }) } } diff --git a/packages/libp2p/src/peer-routing.ts b/packages/libp2p/src/peer-routing.ts index 3747a562bd..ad765e64ba 100644 --- a/packages/libp2p/src/peer-routing.ts +++ b/packages/libp2p/src/peer-routing.ts @@ -78,7 +78,7 @@ export class DefaultPeerRouting implements PeerRouting { try { yield await router.findPeer(id, options) } catch (err) { - self.log.error('%e', err) + self.log.error('router failed to find peer - %e', err) } })()) ) diff --git a/packages/libp2p/src/upgrader.ts b/packages/libp2p/src/upgrader.ts index 1b7c6b84bb..8ec9692698 100644 --- a/packages/libp2p/src/upgrader.ts +++ b/packages/libp2p/src/upgrader.ts @@ -463,7 +463,7 @@ export class Upgrader implements UpgraderInterface { maConn.log('selected %s as muxer protocol', protocol) return muxerFactory } catch (err: any) { - maConn.log.error('error multiplexing outbound connection', err) + maConn.log.error('error multiplexing outbound connection - %e', err) throw new MuxerUnavailableError(String(err)) } } @@ -487,7 +487,7 @@ export class Upgrader implements UpgraderInterface { maConn.log('selected %s as muxer protocol', protocol) return muxerFactory } catch (err: any) { - maConn.log.error('error multiplexing inbound connection', err) + maConn.log.error('error multiplexing inbound connection - %e', err) throw err } } diff --git a/packages/logger/README.md b/packages/logger/README.md index a0dc2e07dd..32be65374b 100644 --- a/packages/logger/README.md +++ b/packages/logger/README.md @@ -37,7 +37,7 @@ try { // an operation log('something happened: %s', 'it was ok') } catch (err) { - log.error('something bad happened: %o', err) + log.error('something bad happened: %e', err) } log('with this peer: %p', {}) diff --git a/packages/logger/src/index.ts b/packages/logger/src/index.ts index 356b88fca6..64636aedbd 100644 --- a/packages/logger/src/index.ts +++ b/packages/logger/src/index.ts @@ -14,7 +14,7 @@ * // an operation * log('something happened: %s', 'it was ok') * } catch (err) { - * log.error('something bad happened: %o', err) + * log.error('something bad happened: %e', err) * } * * log('with this peer: %p', {}) diff --git a/packages/peer-discovery-bootstrap/src/index.ts b/packages/peer-discovery-bootstrap/src/index.ts index caf772dd42..cb4b671272 100644 --- a/packages/peer-discovery-bootstrap/src/index.ts +++ b/packages/peer-discovery-bootstrap/src/index.ts @@ -107,14 +107,14 @@ class Bootstrap extends TypedEventEmitter implements PeerDi .map(str => multiaddr(str)) .filter(ma => { if (!P2P.matches(ma)) { - this.log.error('Invalid multiaddr') + this.log.error('invalid multiaddr') return false } const peerIdStr = ma.getComponents().findLast(c => c.code === CODE_P2P)?.value if (peerIdStr == null) { - this.log.error('Invalid bootstrap multiaddr without peer id') + this.log.error('invalid bootstrap multiaddr without peer id') return false } @@ -154,7 +154,7 @@ class Bootstrap extends TypedEventEmitter implements PeerDi this.timer = setTimeout(() => { void this._discoverBootstrapPeers() .catch(err => { - this.log.error('%e', err) + this.log.error('failed to discover bootstrap peers - %e', err) }) }, this.timeout) } diff --git a/packages/peer-discovery-mdns/src/mdns.ts b/packages/peer-discovery-mdns/src/mdns.ts index cde6fb69b7..d34fb22300 100644 --- a/packages/peer-discovery-mdns/src/mdns.ts +++ b/packages/peer-discovery-mdns/src/mdns.ts @@ -122,7 +122,7 @@ export class MulticastDNS extends TypedEventEmitter impleme })) } } catch (err) { - this.log.error('Error processing peer response - %e', err) + this.log.error('error processing peer response - %e', err) } } diff --git a/packages/protocol-autonat/src/autonat.ts b/packages/protocol-autonat/src/autonat.ts index 165d7504cf..974994eb8d 100644 --- a/packages/protocol-autonat/src/autonat.ts +++ b/packages/protocol-autonat/src/autonat.ts @@ -271,7 +271,7 @@ export class AutoNATService implements Startable { const peer = dialRequest.peer if (peer?.id == null) { - this.log.error('PeerId missing from message') + this.log.error('peerId missing from message') return { type: Message.MessageType.DIAL_RESPONSE, diff --git a/packages/pubsub/src/index.ts b/packages/pubsub/src/index.ts index 92d297d485..a5b2ae5a02 100644 --- a/packages/pubsub/src/index.ts +++ b/packages/pubsub/src/index.ts @@ -403,7 +403,7 @@ export abstract class PubSubBaseProtocol = Pu await this.processMessage(from, msg) } catch (err: any) { - this.log.error('%e', err) + this.log.error('failed to queue messages from %p - %e', from, err) } })) .catch(err => { this.log(err) }) @@ -539,13 +539,13 @@ export abstract class PubSubBaseProtocol = Pu const peerStreams = this.peers.get(peer) if (peerStreams == null) { - this.log.error('Cannot send RPC to %p as there are no streams to it available', peer) + this.log.error('cannot send RPC to %p as there are no streams to it available', peer) return } if (!peerStreams.isWritable) { - this.log.error('Cannot send RPC to %p as there is no outbound stream to it available', peer) + this.log.error('cannot send RPC to %p as there is no outbound stream to it available', peer) return } diff --git a/packages/pubsub/src/peer-streams.ts b/packages/pubsub/src/peer-streams.ts index cfcfe55fa2..7961a3175e 100644 --- a/packages/pubsub/src/peer-streams.ts +++ b/packages/pubsub/src/peer-streams.ts @@ -160,7 +160,7 @@ export class PeerStreams extends TypedEventEmitter { } } ).catch((err: Error) => { - this.log.error('%e', err) + this.log.error('outbound stream pipeline failed - %e', err) }) // Only emit if the connection is new diff --git a/packages/stream-multiplexer-yamux/src/muxer.ts b/packages/stream-multiplexer-yamux/src/muxer.ts index 9279e9783d..e3f2d885b6 100644 --- a/packages/stream-multiplexer-yamux/src/muxer.ts +++ b/packages/stream-multiplexer-yamux/src/muxer.ts @@ -128,7 +128,7 @@ export class YamuxMuxer extends AbstractStreamMuxer { await this.ping(options) } catch (err: any) { // TODO: should abort here? - this.log.error('ping error: %s', err) + this.log.error('ping error - %e', err) } }, this.keepAliveInterval, { // send an initial ping to establish RTT @@ -268,7 +268,7 @@ export class YamuxMuxer extends AbstractStreamMuxer { } // If reason was provided, use that, otherwise use the presence of `err` to determine the reason - this.log.error('muxer abort reason=%s error=%s', reason, err) + this.log.error('muxer abort reason=%s error=%e', reason, err) // send reason to the other side, allow the other side to close gracefully this.sendGoAway(reason) diff --git a/packages/transport-circuit-relay-v2/src/transport/index.ts b/packages/transport-circuit-relay-v2/src/transport/index.ts index a9893d74c0..3d3315aa43 100644 --- a/packages/transport-circuit-relay-v2/src/transport/index.ts +++ b/packages/transport-circuit-relay-v2/src/transport/index.ts @@ -72,7 +72,7 @@ export class CircuitRelayTransport implements Transport this.reservationStore.addRelay(evt.detail, 'discovered') .catch(err => { if (err.name !== 'HadEnoughRelaysError' && err.name !== 'RelayQueueFullError') { - this.log.error('could not add discovered relay %p', evt.detail, err) + this.log.error('could not add discovered relay %p - %e', evt.detail, err) } }) }) @@ -214,7 +214,7 @@ export class CircuitRelayTransport implements Transport return conn } catch (err: any) { - this.log.error('circuit relay dial to destination %p via relay %p failed', destinationPeer, relayPeer, err) + this.log.error('circuit relay dial to destination %p via relay %p failed - %e', destinationPeer, relayPeer, err) stream?.abort(err) throw err @@ -269,7 +269,7 @@ export class CircuitRelayTransport implements Transport await this.components.transportManager.listen([connection.remoteAddr.encapsulate('/p2p-circuit')]) } catch (err: any) { // failed to refresh our hitherto unknown relay reservation but allow the connection attempt anyway - this.log.error('failed to listen on a relay peer we were dialed via but did not have a reservation on', err) + this.log.error('failed to listen on a relay peer we were dialed via but did not have a reservation on - %e', err) } } diff --git a/packages/transport-circuit-relay-v2/src/transport/reservation-store.ts b/packages/transport-circuit-relay-v2/src/transport/reservation-store.ts index 269d72ca85..be5806f8e9 100644 --- a/packages/transport-circuit-relay-v2/src/transport/reservation-store.ts +++ b/packages/transport-circuit-relay-v2/src/transport/reservation-store.ts @@ -161,7 +161,7 @@ export class ReservationStore extends TypedEventEmitter this.#checkReservationCount() }) .catch(err => { - this.log.error('%e', err) + this.log.error('failed to clean up and redial old relays during afterStart - %e', err) }) } diff --git a/packages/transport-webrtc/src/private-to-private/initiate-connection.ts b/packages/transport-webrtc/src/private-to-private/initiate-connection.ts index 8e86517ab3..2e1d5dd33e 100644 --- a/packages/transport-webrtc/src/private-to-private/initiate-connection.ts +++ b/packages/transport-webrtc/src/private-to-private/initiate-connection.ts @@ -112,8 +112,8 @@ export async function initiateConnection ({ rtcConfiguration, dataChannel, signa log.error('error sending ICE candidate - %e', err) }) } - peerConnection.onicecandidateerror = (event) => { - log.error('initiator ICE candidate error - %e', event) + peerConnection.onicecandidateerror = (err) => { + log.error('initiator ICE candidate error - %e', err) } // create an offer diff --git a/packages/transport-webrtc/src/private-to-private/transport.ts b/packages/transport-webrtc/src/private-to-private/transport.ts index d91f2073d8..18fe64b613 100644 --- a/packages/transport-webrtc/src/private-to-private/transport.ts +++ b/packages/transport-webrtc/src/private-to-private/transport.ts @@ -122,7 +122,7 @@ export class WebRTCTransport implements Transport, Startable { this._onProtocol(stream, connection, signal) .catch(err => { - this.log.error('failed to handle incoming connect from %p', connection.remotePeer, err) + this.log.error('failed to handle incoming connect from %p - %e', connection.remotePeer, err) }) .finally(() => { signal.clear() diff --git a/packages/utils/src/mock-muxer.ts b/packages/utils/src/mock-muxer.ts index 90bfdb1361..3b53faa6a8 100644 --- a/packages/utils/src/mock-muxer.ts +++ b/packages/utils/src/mock-muxer.ts @@ -242,7 +242,7 @@ class MockMuxer extends AbstractStreamMuxer { } if (stream == null) { - this.log.error(`No stream found for ${message.id}`) + this.log.error(`no stream found for ${message.id}`) return } From 85d2fa6f98c0b9ccad923de025444330fc635a41 Mon Sep 17 00:00:00 2001 From: Gulshan Kumar Prasad Date: Wed, 24 Sep 2025 14:06:04 +0530 Subject: [PATCH 3/8] update the error log to align function naming --- packages/libp2p-daemon-server/src/dht.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/libp2p-daemon-server/src/dht.ts b/packages/libp2p-daemon-server/src/dht.ts index bc6bdd3e94..4abd66773d 100644 --- a/packages/libp2p-daemon-server/src/dht.ts +++ b/packages/libp2p-daemon-server/src/dht.ts @@ -73,7 +73,7 @@ export class DHTOperations { } } } catch (err: any) { - log.error('missing key %b - %e', key, err) + log.error('error getting value for key %b - %e', key, err) yield ErrorResponse(err) } } @@ -84,7 +84,7 @@ export class DHTOperations { yield OkResponse() } catch (err: any) { - log.error('missing key %b and value %b - %e', key, value, err) + log.error('error putting value %b for key %b - %e', value, key, err) yield ErrorResponse(err) } } From f63101ecfb71d35ee041b2dd36612e1b7661c888 Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Sat, 27 Sep 2025 09:18:02 +0300 Subject: [PATCH 4/8] chore: code review --- packages/libp2p-daemon-server/src/dht.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/libp2p-daemon-server/src/dht.ts b/packages/libp2p-daemon-server/src/dht.ts index 4abd66773d..435a504de7 100644 --- a/packages/libp2p-daemon-server/src/dht.ts +++ b/packages/libp2p-daemon-server/src/dht.ts @@ -30,7 +30,7 @@ export class DHTOperations { await drain(this.dht.provide(cid)) yield OkResponse() } catch (err: any) { - log.error('failed to provide CID %s - %o', cid, err) + log.error('failed to provide CID %s - %e', cid, err) yield ErrorResponse(err) } } From d9b16720be460a09895da37c1e101217d6ea318f Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Sat, 27 Sep 2025 09:18:17 +0300 Subject: [PATCH 5/8] chore: code review --- .../src/transport/reservation-store.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/transport-circuit-relay-v2/src/transport/reservation-store.ts b/packages/transport-circuit-relay-v2/src/transport/reservation-store.ts index be5806f8e9..7910f8ff11 100644 --- a/packages/transport-circuit-relay-v2/src/transport/reservation-store.ts +++ b/packages/transport-circuit-relay-v2/src/transport/reservation-store.ts @@ -446,7 +446,7 @@ export class ReservationStore extends TypedEventEmitter } const errMsg = `reservation failed with status ${response.status ?? 'undefined'}` - this.log.error('%s', errMsg) + this.log.error(errMsg) throw new Error(errMsg) } From d9f860680644b62d3c5e394b31d56fbc9ffd9e60 Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Sat, 27 Sep 2025 09:18:52 +0300 Subject: [PATCH 6/8] chore: code review --- packages/connection-encrypter-tls/src/tls.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/connection-encrypter-tls/src/tls.ts b/packages/connection-encrypter-tls/src/tls.ts index 9ce4830d8f..08ae235b8b 100644 --- a/packages/connection-encrypter-tls/src/tls.ts +++ b/packages/connection-encrypter-tls/src/tls.ts @@ -179,7 +179,7 @@ export class TLS implements ConnectionEncrypter { if (streamMuxer == null) { const err = new InvalidCryptoExchangeError(`Selected muxer ${socket.alpnProtocol} did not exist`) - log.error(`selected muxer ${socket.alpnProtocol} did not exist - %e`, err) + log.error(`selected muxer %s did not exist - %e`, socket.alpnProtocol, err) connection.abort(err) reject(err) From 7c9faf094dd3bb574c0870011037dc48b4337c75 Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Sat, 27 Sep 2025 09:23:50 +0300 Subject: [PATCH 7/8] chore: code review --- packages/floodsub/src/floodsub.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/floodsub/src/floodsub.ts b/packages/floodsub/src/floodsub.ts index 8fbc08b0ba..d6ec49bdd0 100644 --- a/packages/floodsub/src/floodsub.ts +++ b/packages/floodsub/src/floodsub.ts @@ -341,7 +341,7 @@ export class FloodSub extends TypedEventEmitter implements Flood await this.processMessage(peerStream.peerId, msg) } catch (err: any) { - this.log.error('failed to queue messages from %p - %e', from, err) + this.log.error('failed to queue messages from %p - %e', peerStream.peerId, err) } })) .catch(err => { this.log(err) }) From 3e942d642298486a5d76c48cace25adb269f0330 Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Sat, 27 Sep 2025 09:31:17 +0300 Subject: [PATCH 8/8] chore: linting --- packages/connection-encrypter-tls/src/tls.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/connection-encrypter-tls/src/tls.ts b/packages/connection-encrypter-tls/src/tls.ts index 08ae235b8b..1931ea4d56 100644 --- a/packages/connection-encrypter-tls/src/tls.ts +++ b/packages/connection-encrypter-tls/src/tls.ts @@ -179,7 +179,7 @@ export class TLS implements ConnectionEncrypter { if (streamMuxer == null) { const err = new InvalidCryptoExchangeError(`Selected muxer ${socket.alpnProtocol} did not exist`) - log.error(`selected muxer %s did not exist - %e`, socket.alpnProtocol, err) + log.error('selected muxer %s did not exist - %e', socket.alpnProtocol, err) connection.abort(err) reject(err)