What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Open WooCommerce > Status > Logs to inspect WooCommerce log entries. Choose the source and date that cover the failed action, then search the message fields for the order number, payment gateway, endpoint, extension, or exact error text. If WooCommerce is not recording the event, open Logs > Settings, enable the logger, choose file-system or database storage, set retention, and select an appropriate minimum severity. For PHP failures that occur outside WooCommerce’s logger, enable WordPress’s protected debug log and inspect wp-content/debug.log. This guide explains the settings, storage trade-offs, reading method, checkout and payment diagnosis, and safe escalation.
Antihost offers managed WordPress hosting with free migration, one-click staging and a 14-day free trial.
Open the WooCommerce log viewer
Use the administrator path
- Sign in to WordPress with an account that can manage WooCommerce.
- Go to WooCommerce > Status > Logs.
- In the log selector, choose the source and date closest to the failed checkout, payment, webhook, scheduled task, import, or other event.
- Open the entry and search within its message fields. Search first for a stable identifier: the order number, gateway name, REST endpoint, plugin or extension slug, or a distinctive fragment of the error.
The viewer lists file-system logs by source and date. A precise event time makes the list much easier to navigate, so record the time shown by the browser, server, or customer and note whether it is local time or UTC.
As an Amazon Associate I earn from qualifying purchases.
When the log list appears empty
An empty list does not prove that the store had no error. The event may have been written by a different source, may predate a storage change, or may belong to WordPress or the web server rather than WooCommerce’s logger. Check the selected date and source, then verify the logger settings. For a PHP failure outside WooCommerce, use wp-content/debug.log as described below. If the failure is at the server layer, ask the host for PHP and web-server records covering the same timestamp.
Enable and configure WooCommerce logging
Open the logger settings
From the log area, open Logs > Settings. Confirm that logging is enabled before reproducing the problem. The settings page controls the handler, retention period, and minimum severity that will be stored.
#1 Best Overall
Choose a storage handler
WooCommerce provides two built-in storage methods: File system and Database. Select the one that fits the way your team backs up, searches, and protects the site. The choice affects new entries; changing it does not migrate existing records to the new handler and does not delete the old records. If an incident began before the change, investigate the former location as well as the current one.
Set retention
Retention removes old records so diagnostics do not consume storage indefinitely. With file storage, WooCommerce deletes complete log files that are older than the retention period. With database storage, it deletes individual old entries. Choose a period long enough to cover your normal incident-response window, but do not retain sensitive production data longer than your security and privacy policies require.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Set the minimum severity
Select the minimum level that should be recorded. Choosing None records all severities, including the most verbose diagnostic messages. A lower threshold can be useful while reproducing an intermittent fault, but verbose logging should not remain enabled indefinitely on a busy production store. After collecting the evidence, raise the threshold to the normal operating value.
Reproduce one controlled event
- Write down the exact time, including the time zone, before starting.
- Record the affected order number, customer-visible action, checkout or REST endpoint, gateway, and extension involved.
- Perform one reproduction rather than repeating the same failed payment many times; repeated attempts make correlation harder and can create duplicate orders or authorization attempts.
- Return to WooCommerce > Status > Logs, select the source and date for that attempt, and search for the recorded identifiers.
This controlled sequence lets you distinguish the message generated by the failure from unrelated notices generated by background jobs or other shoppers.
Understand WooCommerce severity levels
WooCommerce’s logger recognizes eight levels: emergency, alert, critical, error, warning, notice, info, and debug. Severity is a prioritization signal, not a diagnosis. Read it together with the source, timestamp, message, and context. A warning may be harmless in one integration and decisive in another; an error that appears once may be a consequence of an earlier, more important failure.
| Level | How to use it during triage |
|---|---|
| Emergency | Treat as the highest-priority condition. Check whether the store or a core operation is unavailable and escalate immediately if it is recurring. |
| Alert | Investigate promptly; it indicates a condition requiring action before normal operation can be trusted. |
| Critical | Look for a failed core path, repeated integration failure, or a condition that can prevent orders from completing. |
| Error | Follow the message and context to the failing operation, then determine whether it is reproducible and recurring. |
| Warning | Use as a clue. Confirm whether the same source and message occur at the customer’s failure time. |
| Notice | Usually supplies a state change or noteworthy condition; correlate it with the action instead of treating it as proof of failure. |
| Info | Provides normal operational detail that can establish what the integration attempted. |
| Debug | Most verbose diagnostic context. Enable it temporarily when the normal threshold does not reveal the sequence. |
The practical question is not “Is there an error?” but “Which source produced this message at the moment the customer’s action failed, and what does the surrounding context show?”
Recommended Free Tools
Rank #2
Read an individual entry in the right order
Start with the timestamp
Match the entry’s timestamp to the customer’s click, checkout request, webhook delivery, scheduled task, or import/export job. Account for time-zone differences between the browser, WordPress, hosting platform, and payment provider. If you cannot establish a reliable time, reproduce the event and record the time immediately.
Identify the source
The source often points to the subsystem that emitted the record: a payment gateway, a WooCommerce component, an extension, a REST request, or a background process. Group messages from the same source around the failure. A message from an unrelated scheduled task can be valid but irrelevant to the checkout symptom.
Read severity and message together
Read the complete message, not just the level. Capture the first meaningful failure in a chain: later messages may report that an order, webhook, or callback could not continue because an earlier request failed. Preserve the exact spelling of error text when searching documentation or asking an extension developer for help.
Use context and stable identifiers
Search for an order number, gateway name, endpoint, plugin slug, request identifier, or distinctive error phrase. Context can show the operation that was attempted, the object being processed, or the response that came back. Avoid relying only on a customer’s name or a partial product title because those values are less stable and can expose personal data when logs are shared.
Confirm recurrence
Treat a single warning as a lead. Check whether the same source and message recur immediately before or after the failed action, and whether other orders show the same pattern. Repetition at the exact event time is stronger evidence than an isolated entry elsewhere in the file.
File-system versus database storage
| Consideration | File system | Database |
|---|---|---|
| Default location | Files in the site’s uploads/wc-logs directory by default. |
Rows in the {$wpdb->prefix}woocommerce_log table. |
| Retention behavior | WooCommerce removes whole files beyond the retention period. | WooCommerce removes individual old entries beyond the retention period. |
| Growth behavior | A file can rotate at 5 MB before WooCommerce starts a new file. | Entries accumulate as database rows and are removed individually by retention. |
| Access | Inspectable through the WooCommerce log screen and, when appropriate, by an administrator with protected file access. | Inspectable through the WooCommerce log screen or controlled database administration tools. |
| History after switching | Existing files remain in the old handler; switching does not migrate them. | Existing rows remain in the old handler; switching does not migrate them. |
| Operational concern | File permissions, backups, and web-server protection determine whether records can be written and kept private. | Database backups, table access, and database growth determine recoverability and privacy. |
The 5 MB figure is a WooCommerce product behavior for file-log rotation, not a guarantee that every incident fits in one file. A busy store can produce several rotated files, so use the source and date selectors rather than opening only the newest file.
Rank #3
Protect file logs
WooCommerce adds an .htaccess file intended to protect the wc-logs directory, but the documentation warns that not every web server recognizes it. Whenever possible, place logs outside the web root and preserve permissions that allow WordPress to write them. Verify the protection provided by the actual server stack; do not assume that a directory containing payment or customer details is private merely because an .htaccess file exists.
Protect database logs
Limit database access to the administrators and service accounts that need it, include the log table in an appropriate backup plan, and apply the same retention and redaction rules used for file logs. A database row is not automatically safer than a file; it is still operational data that can contain request details, identifiers, or sensitive responses.
Free tools Windows power users keep installed
One-click scans. No signup required.
Diagnose a failed checkout or payment
Build a narrow event record
Before changing settings, write down the customer action, order number (if one exists), gateway, device or endpoint involved, exact time zone, and extension versions known to be active. This prevents a broad search through unrelated background activity.
Search the matching WooCommerce source
In the log viewer, select the date and source covering the attempt. Search in this order:
- The order number or checkout request identifier.
- The payment gateway name or extension slug.
- The REST or AJAX endpoint involved.
- A distinctive phrase copied from the customer-facing error.
Read several entries before and after the first matching line. Payment failures commonly involve a sequence—request, response, validation, and order-state update—so the first abnormal response can be more useful than the final “payment failed” message.
If no gateway entry exists
WooCommerce’s logger is used by many extensions, but an extension may expose its own logging switch. Open that gateway or extension’s settings and confirm its diagnostic option is enabled, then reproduce the event once. If the extension writes outside WooCommerce, follow its documented location and apply the same timestamp and redaction discipline.
Rank #4
If WooCommerce records only the symptom
Move one layer down rather than raising verbosity forever. Use a staging or development environment with Query Monitor to inspect database queries, PHP errors, AJAX and REST requests, hooks and actions, enqueued scripts and styles, and HTTP API calls. If the failure is server-level, request PHP and web-server logs from the host for the same timestamp. Keep the production store’s customer-facing error display unchanged while collecting evidence.
Use WordPress’s debug log for PHP failures
Some fatal errors occur before WooCommerce’s logger can record them, or they originate in WordPress core, another plugin, or PHP itself. WooCommerce’s maintained debugging guidance uses WordPress’s debug constants and writes to wp-content/debug.log.
Set the constants in wp-config.php
Add or update these definitions before the line that says WordPress should stop editing the file. If the constants already exist, change their values rather than defining duplicates:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
WP_DEBUG enables debugging, WP_DEBUG_LOG writes errors to the log file, and WP_DEBUG_DISPLAY keeps those errors out of the page response. Hiding display errors is essential on a public store: it enables the debug log without exposing PHP paths or diagnostic content to shoppers.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Reproduce and inspect
- Save a backup or otherwise preserve the current configuration before editing.
- Enable the three settings, reproduce the failure once, and note the exact time.
- Open
wp-content/debug.logand locate entries around that time. - Match the fatal error’s file, function, plugin, or extension to the WooCommerce entry and the customer action.
When the incident is captured, return the site to its normal secure debugging configuration. Do not leave verbose debugging enabled indefinitely on a busy production store.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Investigate fatal errors and related layers
| Diagnostic layer | What it can reveal | When to use it |
|---|---|---|
| WooCommerce Logs | WooCommerce and extension logger messages, source, severity, timestamp, and context. | The failure is tied to an order, gateway, webhook, scheduled task, or WooCommerce operation. |
wp-content/debug.log |
WordPress/PHP errors that are outside, or occur before, WooCommerce’s logger. | A fatal error, PHP warning, or plugin conflict is suspected and the WooCommerce entry shows only a symptom. |
| Query Monitor | Database queries, PHP errors, AJAX and REST requests, hooks/actions, enqueued assets, and HTTP API calls. | You need request-level detail in a staging or development environment. |
| Host PHP and web-server logs | Server-level failures, rejected requests, timeouts, process limits, and web-server responses. | No application log covers the timestamp, or the request never reaches WordPress. |
These layers are complementary, not interchangeable. Start with the layer closest to the failed action, then escalate only when its evidence ends. Keep timestamps aligned across all four sources.
Best Value
- Keep track of everything from attendance to test scores
- Spiral bound
- Measures 8-1/2" x 11"
Troubleshooting branches
The Logs screen has no record of a known failure
- Check Logs > Settings and confirm the logger is enabled.
- Verify that the minimum severity is not filtering out the event; temporarily choose None while reproducing.
- Confirm that you selected the correct source and date.
- Check the previous storage location if the handler was recently changed.
- Inspect
wp-content/debug.logand host logs if the failure is outside WooCommerce.
Entries stop appearing after a configuration change
Confirm the selected handler, write permissions, available disk or database capacity, and retention setting. A handler change does not copy old history, so compare the new location with the old one before concluding that records vanished.
A file exists but cannot be opened publicly or through a server tool
That may be a protection feature rather than a logging failure. Use the WooCommerce administrator viewer, verify file ownership and permissions, and ask the host how the web server handles the directory’s protection rules. Do not weaken access controls just to make a raw log downloadable.
The message contains customer or credential data
Restrict access, redact personal information, payment details, tokens, and API keys before sending an excerpt to a developer or host, and never publish the raw file. After the incident, shorten retention or raise the severity threshold if the extra detail is no longer needed.
Only a warning appears around the failed order
Compare the warning’s source and timestamp with adjacent messages and with another reproduction. A warning is evidence to investigate, not proof that it caused the failure. Look for the first abnormal response or preceding error in the same sequence.
Share a useful, safe log excerpt
When escalating, send a compact timeline instead of an entire log file:
- Site time zone and the corresponding UTC time, if known.
- WooCommerce, WordPress, PHP, gateway, and extension versions that affect the path.
- The order number or a redacted identifier.
- The source, severity, and complete message for the relevant entries.
- A few surrounding lines that establish the sequence, with secrets and personal data removed.
- The storage handler and minimum severity in effect when the event was reproduced.
- Whether the same message recurred and whether a clean reproduction is available.
Keep the original log protected for internal review, and make a separate redacted copy for external support. API keys, authorization headers, customer addresses, email addresses, payment information, and session data should never be included in a public ticket.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchProduction logging checklist
- Enable only the level of detail needed to capture the incident.
- Reproduce once and record the exact time zone, source, order, endpoint, and extension.
- Search WooCommerce Logs first, then WordPress debug and host logs when the failure crosses an application boundary.
- Confirm recurrence before treating a warning or isolated notice as the cause.
- Redact sensitive data before sharing any excerpt.
- Restore the normal minimum severity and WordPress debug-display settings after capture.
- Review retention, backups, permissions, and web-server protection so the next incident is both recoverable and private.
With those controls in place, WooCommerce logs become a timeline you can correlate with a real customer action rather than a permanent stream of unfiltered production data.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




