Crypto trading bot logs are the primary diagnostic tool for understanding why your bot behaved as it did: why it entered or didn't enter a trade, why an order failed to fill, why the bot paused, and whether API communication is healthy. Most new bot traders ignore logs entirely until something goes wrong — at which point the logs become indispensable but suddenly harder to interpret. This guide teaches systematic log reading so you can proactively monitor bot health and diagnose issues quickly when they arise.
DennTech generates structured logs with clear timestamps, log levels, and component identifiers. Understanding the log structure reduces troubleshooting time from hours to minutes. For complementary operational guides: VPS deployment guide, installation guide, API security guide.
Log Entry Structure
A DennTech log entry follows this format:
[TIMESTAMP] [LEVEL] [COMPONENT] Message text with details
Example entries:
2026-05-22 03:14:22 UTC [INFO] [SIGNAL] RSI=28.4 on BTC/USDT 4H — LONG signal generated 2026-05-22 03:14:23 UTC [INFO] [ORDER] Limit buy 0.05 BTC @ 68240.00 submitted (orderId: A12345) 2026-05-22 03:14:45 UTC [INFO] [ORDER] Order A12345 filled @ 68238.50 2026-05-22 03:15:01 UTC [DEBUG] [FEED] Price feed heartbeat OK — BTC/USDT: 68241.00 2026-05-22 04:22:10 UTC [WARN] [API] Nonce error from exchange — retrying (attempt 1/3) 2026-05-22 04:22:11 UTC [INFO] [API] Retry succeeded on attempt 2 2026-05-22 06:45:00 UTC [ERROR] [ORDER] Order B22344 rejected — insufficient balance
Log Levels Explained
- DEBUG
- Verbose operational information: price feed heartbeats, indicator value recalculations, candle close events. Useful for deep troubleshooting but noisy for routine review. Enable only when actively diagnosing an issue.
- INFO
- Normal operations: signal generated, order submitted, order filled, position opened/closed, stop-loss triggered, strategy paused/resumed. The primary level for routine monitoring. Review INFO logs daily to verify normal activity.
- WARN
- Non-fatal issues: API nonce errors (self-recovering), rate limit warnings, exchange returned unexpected but handleable response, circuit breaker tripped then recovered. Review WARN logs when you notice unexpected behavior. See our circuit breaker guide.
- ERROR
- Failures requiring attention: order rejected (insufficient balance, invalid pair), API authentication failure, connection to exchange failed after all retries, strategy halted due to unrecoverable condition. ERROR entries always require a review and potential action.
- CRITICAL
- Severe failures: bot process crashing, data corruption detected, exchange API key invalidated. CRITICAL entries typically stop the bot — immediate investigation required.
The Three Key Log Streams
Signal Logs
Signal logs record every time an indicator fires a signal. Example: "RSI(14) crossed below 30 on BTC/USDT 4H — LONG signal." If your bot is not entering trades when you expect, check signal logs first — if no signal is present, the indicator conditions were not met (RSI did not actually reach threshold, or an additional filter blocked the signal). Signals are logged whether or not they result in an order — this lets you verify the strategy's signal frequency against your expectations from backtesting.
Order Logs
Order logs track every order lifecycle event: submitted → acknowledged → filled (or canceled/rejected/expired). When an order was submitted but not filled, the order log will show whether it was canceled (strategy changed conditions before fill), timed out (unfilled limit order expired), or rejected (exchange-side rejection). For DCA strategies, each safety order has its own order log entry — see our DCA guide.
API/Connection Logs
Connection logs record every API call to the exchange: authentication events, REST calls, WebSocket connection status. Recurring WARN entries here often indicate exchange-side issues (maintenance, degraded API) rather than bot problems. A string of errors followed by recovery is typical during exchange maintenance windows — check the exchange's status page when you see persistent API errors.
Common Error Patterns and Fixes
| Error Message | Cause | Fix |
|---|---|---|
| InvalidNonce / Nonce error | System clock drift (bot's timestamp out of sync with exchange) | Sync server clock: w32tm /resync (Windows) or ntpdate (Linux) |
| Insufficient balance | Available balance is less than order size | Reduce position size or add funds. Check position sizing guide: position sizing |
| API key permission denied | API key lacks trade permission, or IP restriction blocking bot IP | Re-check API permissions. See API security guide |
| Order size too small | Order size below exchange minimum | Increase minimum order amount in bot settings |
| Rate limit exceeded | Bot making too many API calls per minute | Reduce signal check frequency or upgrade exchange account tier |
| Invalid symbol | Pair name format mismatch between bot and exchange | Verify exact pair format (BTC/USDT vs BTCUSDT vs BTC_USDT) in DennTech exchange settings |
Log Rotation and Storage on VPS
On a VPS deployment, DennTech logs rotate daily. The current log is app.log; previous logs are app.2026-05-21.log, etc. To tail live logs on VPS: tail -f /opt/denntech-bot/logs/app.log. For log storage management on a VPS with limited disk space, keep the last 7–14 days of logs and delete older rotated logs. See our VPS guide for the full disk management approach. Full documentation at DennTech docs.
Frequently Asked Questions
- My bot logged a signal but no order was placed — why?
- Three most common causes: (1) A filter blocked the entry — the primary signal fired but a secondary filter (ADX, Chikou span, volatility filter) rejected the entry. Check if a "signal blocked by filter" line follows the signal entry. (2) An existing position is already open and the strategy is set to one position at a time. (3) Balance check failed — available capital below the minimum order size. Each of these will have a corresponding INFO or WARN log entry explaining the block. See the full strategy documentation at DennTech docs.
- How do I tell if my bot traded at the wrong price?
- Compare the "Order submitted" price to the "Order filled" price in your order logs. For limit orders, fills should be at or better than the submitted price (filled at or below limit for buys, at or above limit for sells). For market orders, slippage will be visible as a difference between the last price at submission time (logged in the signal log) and the fill price (logged in the order fill line). Persistent large slippage indicates low liquidity at your order size — see our exchange guides like Kraken and Bitstamp for higher-liquidity alternatives.
- Should I keep DEBUG logging on by default?
- No — DEBUG logging generates a very high volume of entries and significantly increases log file size (potentially gigabytes per week on active strategies). Enable DEBUG only when actively troubleshooting a specific issue, then revert to INFO. For VPS deployments, excessive debug log volume can fill disk space quickly — always revert to INFO after diagnosis. Explore DennTech at the pricing page or see the live demo.
For the full operations stack: installation → VPS setup → log monitoring (this guide) → circuit breakers. Documentation at DennTech docs.