進階
Debug Logging
深入了解 Bitcoin Core 的日誌系統,配置和分析 debug.log 文件。
10 分鐘
日誌系統概覽
Bitcoin Core 的日誌系統提供詳細的運行時資訊,幫助開發者和節點運營者 診斷問題、監控性能和理解節點行為。
日誌文件位置
# 預設位置
~/.bitcoin/debug.log # Linux/macOS
%APPDATA%\Bitcoin\debug.log # Windows
# 自定義數據目錄
~/.bitcoin-testnet/debug.log # testnet
~/.bitcoin-signet/debug.log # signet
# 日誌文件大小
# 預設最大 10 MB,超過後會輪換為 debug.log.1 日誌類別
# 查看所有可用的日誌類別
bitcoin-cli logging
# 輸出示例
{
"net": false,
"tor": false,
"mempool": false,
"http": false,
"bench": false,
"zmq": false,
"walletdb": false,
"rpc": false,
"estimatefee": false,
"addrman": false,
"selectcoins": false,
"reindex": false,
"cmpctblock": false,
"rand": false,
"prune": false,
"proxy": false,
"mempoolrej": false,
"libevent": false,
"coindb": false,
"qt": false,
"leveldb": false,
"validation": false,
"i2p": false,
"ipc": false,
...
} | 類別 | 描述 |
|---|---|
| net | 網路連接和消息 |
| mempool | 交易池操作 |
| validation | 區塊和交易驗證 |
| mempoolrej | 被拒絕的交易 |
| selectcoins | 幣選擇算法 |
| estimatefee | 手續費估算 |
| tor | Tor 連接 |
| bench | 性能基準測試 |
配置日誌
# bitcoin.conf
# 啟用特定類別
debug=net
debug=mempool
debug=validation
# 啟用所有類別(產生大量日誌!)
debug=1
# 禁用日誌文件(只輸出到控制台)
# nodebuglogfile=1
# 日誌時間戳
logtimestamps=1
# 微秒級時間戳
logtimemicros=1
# 包含線程名稱
logthreadnames=1
# 包含源文件位置
logsourcelocations=1
# 縮短日誌(無時間戳和類別)
# logips=1 # 記錄 IP 地址 # 運行時啟用/禁用日誌類別
bitcoin-cli logging '["net", "mempool"]' # 啟用
bitcoin-cli logging '[]' '["net", "mempool"]' # 禁用
# 啟用所有
bitcoin-cli logging '["all"]'
# 禁用所有
bitcoin-cli logging '[]' '["all"]'
# 查看當前設置
bitcoin-cli logging 閱讀日誌
# 實時監控日誌
tail -f ~/.bitcoin/debug.log
# 過濾特定類別
tail -f ~/.bitcoin/debug.log | grep "\[net\]"
# 過濾新區塊
tail -f ~/.bitcoin/debug.log | grep "UpdateTip"
# 過濾連接事件
tail -f ~/.bitcoin/debug.log | grep -E "(Added|Removed) connection"
# 過濾錯誤
tail -f ~/.bitcoin/debug.log | grep -i error
# 查看最近的驗證錯誤
grep "ERROR" ~/.bitcoin/debug.log | tail -20
# 統計連接類型
grep "connection type" ~/.bitcoin/debug.log | sort | uniq -c 日誌示例
# 新區塊
2024-01-15T12:00:00Z UpdateTip: new best=000000000000000000028ed...
height=800000 version=0x20000000 log2_work=94.123456
tx=876543210 date='2024-01-15T12:00:00Z' progress=0.999999
cache=450.0MiB(3456789txo)
# 節點連接
2024-01-15T12:00:01Z [net] Added connection peer=123 connection type=outbound-full-relay
# 交易進入 mempool
2024-01-15T12:00:02Z [mempool] AcceptToMemoryPool: peer=45:
accepted abc123... (poolsz 5432 txn, 3456 kB)
# 交易被拒絕
2024-01-15T12:00:03Z [mempoolrej] def456... from peer=67 was not accepted:
min relay fee not met, 100 < 1000
# 區塊驗證
2024-01-15T12:00:04Z [validation] Validating block 000000000000000000028ed...
2024-01-15T12:00:05Z [validation] - Connect postprocess: 12.34ms [0.12s]
# 幣選擇
2024-01-15T12:00:06Z [selectcoins] Fee rate: 10.00 sat/vB
2024-01-15T12:00:06Z [selectcoins] Target: 50000000 sats
2024-01-15T12:00:06Z [selectcoins] Algo: Branch and Bound 調試技巧
# 調試網路問題
bitcoin-cli logging '["net", "addrman"]'
# 然後查看:
grep -E "\[net\]|\[addrman\]" ~/.bitcoin/debug.log | tail -100
# 調試交易廣播
bitcoin-cli logging '["mempool", "mempoolrej", "net"]'
# 發送交易後查看:
grep "abc123" ~/.bitcoin/debug.log # 替換為 txid
# 調試同步問題
bitcoin-cli logging '["validation", "net", "prune"]'
grep "UpdateTip\|progress" ~/.bitcoin/debug.log | tail -50
# 調試幣選擇
bitcoin-cli logging '["selectcoins"]'
# 創建交易後查看選擇過程
# 性能分析
bitcoin-cli logging '["bench"]'
grep "\[bench\]" ~/.bitcoin/debug.log | tail -50 日誌輪換
# Bitcoin Core 自動輪換日誌
# 當 debug.log 達到 10 MB 時,重命名為 debug.log.1
# 使用 logrotate(Linux)配置更精細的輪換
# /etc/logrotate.d/bitcoin
/home/bitcoin/.bitcoin/debug.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 0640 bitcoin bitcoin
postrotate
# 通知 bitcoind 重新打開日誌文件
kill -HUP $(cat /var/run/bitcoind.pid 2>/dev/null) 2>/dev/null || true
endscript
}
# 手動清理舊日誌
rm ~/.bitcoin/debug.log.1
# 或截斷當前日誌
> ~/.bitcoin/debug.log 相關 RPC 命令
# 查看/設置日誌類別
bitcoin-cli logging
bitcoin-cli logging '["net"]'
# 獲取記憶體資訊(包含日誌緩衝區)
bitcoin-cli getmemoryinfo
# 查看 RPC 伺服器資訊
bitcoin-cli getrpcinfo
# 上次處理的區塊時間
bitcoin-cli getblockchaininfo | jq '.time, .mediantime'
# 節點運行時間
bitcoin-cli uptime 總結
- ✓ 日誌類別:可選擇性啟用特定類型的日誌
- ✓ 運行時配置:無需重啟即可調整日誌級別
- ✓ 調試利器:診斷網路、驗證和錢包問題
- ⚠ 注意:debug=1 會產生大量日誌,影響性能
已複製連結