Files
SenemUmac fe44e785f4 Improve custom-logger README (#3253)
This PR was previously opened as #3245 but was closed before merging.
The changes remain the same: updating the custom-logger README with
clearer instructions, and guidance on ensuring $GOPATH/bin is in PATH.

No new changes were added; this is simply reopening the PR to merge the
existing updates.

Co-authored-by: sunofcoder <senemumac@Senems-MacBook-Air.local>
2025-10-24 10:01:46 +03:00
..
2025-06-19 23:44:08 +03:00
2025-10-24 10:01:46 +03:00

custom-logger

custom-logger is an example demonstrating how to override the default logging behavior of the Pion WebRTC stack.
By default, Pion logs everything to stdout.
This example shows how to inject a custom LoggerFactory to handle logs from every subsystem (ICE, DTLS, SCTP, DataChannel...).


Features

  • Creates a custom logger that implements logging.LeveledLogger.
  • Initializes two peer connections (offerer and answerer) locally.
  • Establishes a WebRTC connection between them.
  • Logs events from:
    • ICE candidate gathering
    • DTLS handshake
    • SCTP and DataChannel setup
  • Prints logs with clear prefixes like customLogger Debug:.

Ideal for:

  • Integrate with external monitoring systems
  • Store logs to files or databases
  • Debug complex WebRTC flows in a structured way

How to run

1. Install the example

go install github.com/pion/webrtc/v4/examples/custom-logger@latest

Make sure $(go env GOPATH)/bin is in your PATH.

You can add it to your PATH like this (zsh):

echo 'export PATH="$PATH:$(go env GOPATH)/bin"' >> ~/.zshrc
source ~/.zshrc

2.Run

custom-logger or go run main.go

Example output

Creating logger for ice
Creating logger for dtls
Peer Connection State has changed: connected (answerer)
Peer Connection State has changed: connected (offerer)
customLogger Debug: Adding a new peer-reflexive candidate: 10.8.21.1:51196

You should see messages from our customLogger, as two PeerConnections start a session