How to Read Crypto Bot Logs and Troubleshoot Issues

Your bot's logs are its black box — learning to read them turns mysterious behavior into diagnosable, fixable problems.

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 MessageCauseFix
InvalidNonce / Nonce errorSystem clock drift (bot's timestamp out of sync with exchange)Sync server clock: w32tm /resync (Windows) or ntpdate (Linux)
Insufficient balanceAvailable balance is less than order sizeReduce position size or add funds. Check position sizing guide: position sizing
API key permission deniedAPI key lacks trade permission, or IP restriction blocking bot IPRe-check API permissions. See API security guide
Order size too smallOrder size below exchange minimumIncrease minimum order amount in bot settings
Rate limit exceededBot making too many API calls per minuteReduce signal check frequency or upgrade exchange account tier
Invalid symbolPair name format mismatch between bot and exchangeVerify 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: installationVPS setup → log monitoring (this guide) → circuit breakers. Documentation at DennTech docs.

Disclaimer: DennTech Trading Solutions is a software company, not a financial advisor. Nothing on this site constitutes financial advice, investment advice, or a recommendation to buy or sell any asset. Cryptocurrency trading involves substantial risk of loss and is not suitable for all investors. Always do your own research and consult a qualified financial professional before making any investment decisions. View full Liability Waiver →