{"id":232644,"date":"2025-05-17T12:16:21","date_gmt":"2025-05-17T12:16:21","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/logiq\/"},"modified":"2026-03-20T05:54:13","modified_gmt":"2026-03-20T05:54:13","slug":"log-iq","status":"publish","type":"plugin","link":"https:\/\/bal.wordpress.org\/plugins\/log-iq\/","author":20904642,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.2.0","stable_tag":"1.2.0","tested":"6.8.5","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"LogIQ","header_author":"A K M Elias","header_description":"Intelligent Debugging for WordPress Developers","assets_banners_color":"39595d","last_updated":"2026-03-20 05:54:13","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/log-iq\/","header_author_uri":"https:\/\/akmelias.com","rating":0,"author_block_rating":0,"active_installs":10,"downloads":587,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"akmelias","date":"2025-05-18 02:31:35"},"1.0.1":{"tag":"1.0.1","author":"akmelias","date":"2025-06-11 06:00:19"},"1.0.2":{"tag":"1.0.2","author":"akmelias","date":"2025-06-16 18:45:49"},"1.0.3":{"tag":"1.0.3","author":"akmelias","date":"2025-07-06 14:41:50"},"1.2.0":{"tag":"1.2.0","author":"akmelias","date":"2026-03-20 05:54:13"}},"upgrade_notice":{"1.2.0":"<p>Major quality release. Fixes several bugs including a pagination conflict with WordPress core admin tables and a memory issue on large log files. Adds search, export, copy-to-clipboard, collapsible stack traces, duplicate detection, and relative timestamps. Recommended for all users.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3295232,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3295232,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3486970,"resolution":false,"location":"assets","locale":"","contents":"{\"landingPage\":\"\\\/wp-admin\\\/admin.php?page=logiq-debug\",\"preferredVersions\":{\"php\":\"7.4\",\"wp\":\"latest\"},\"phpExtensionBundles\":[\"kitchen-sink\"],\"features\":{\"networking\":true},\"steps\":[{\"step\":\"installPlugin\",\"options\":{\"activate\":true},\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"log-iq\"}},{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"}]}"}},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.0.3","1.2.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3295232,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3295232,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3295232,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3295232,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3295232,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3295232,"resolution":"6","location":"assets","locale":""}},"screenshots":{"1":"Main log viewer with color-coded levels, search, and filter tabs","2":"Collapsible stack trace on a Fatal error entry","3":"Duplicate detection with count badge","4":"Relative timestamps with full timestamp on hover","5":"Debug Settings &amp; Status panel","6":"Export and copy-to-clipboard controls"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[17813,2679,4932,14925,159395],"plugin_category":[59],"plugin_contributors":[227073],"plugin_business_model":[],"class_list":["post-232644","plugin","type-plugin","status-publish","hentry","plugin_tags-debug-log","plugin_tags-debugging","plugin_tags-developer-tools","plugin_tags-error-log","plugin_tags-log-viewer","plugin_category-utilities-and-tools","plugin_contributors-akmelias","plugin_committers-akmelias"],"banners":{"banner":"https:\/\/ps.w.org\/log-iq\/assets\/banner-772x250.png?rev=3295232","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/log-iq\/assets\/icon-256x256.png?rev=3295232","icon_2x":"https:\/\/ps.w.org\/log-iq\/assets\/icon-256x256.png?rev=3295232","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/log-iq\/assets\/screenshot-1.png?rev=3295232","caption":"Main log viewer with color-coded levels, search, and filter tabs"},{"src":"https:\/\/ps.w.org\/log-iq\/assets\/screenshot-2.png?rev=3295232","caption":"Collapsible stack trace on a Fatal error entry"},{"src":"https:\/\/ps.w.org\/log-iq\/assets\/screenshot-3.png?rev=3295232","caption":"Duplicate detection with count badge"},{"src":"https:\/\/ps.w.org\/log-iq\/assets\/screenshot-4.png?rev=3295232","caption":"Relative timestamps with full timestamp on hover"},{"src":"https:\/\/ps.w.org\/log-iq\/assets\/screenshot-5.png?rev=3295232","caption":"Debug Settings &amp; Status panel"},{"src":"https:\/\/ps.w.org\/log-iq\/assets\/screenshot-6.png?rev=3295232","caption":"Export and copy-to-clipboard controls"}],"raw_content":"<!--section=description-->\n<p><strong>Debugging WordPress shouldn't be painful.<\/strong><\/p>\n\n<p>Most developers deal with debug logs the hard way: SSH into the server, <code>tail -f debug.log<\/code>, squint at wall-of-text output, scroll endlessly to find the one error that matters. It's slow, it's fragile, and it pulls you out of your flow.<\/p>\n\n<p><strong>LogIQ fixes that.<\/strong><\/p>\n\n<p>LogIQ is an intelligent debug log viewer built for WordPress developers. It lives in your admin dashboard, parses your log file automatically, and surfaces exactly what you need \u2014 with search, filters, collapsible stack traces, and one-click editor access. No config files. No terminal. No wasted time.<\/p>\n\n<h4>What Makes LogIQ Different<\/h4>\n\n<p>Most log plugins just dump raw text into a <code>&lt;textarea&gt;<\/code>. LogIQ actually understands your logs.<\/p>\n\n<ul>\n<li>Categorizes every entry by level (Fatal, Error, Warning, Notice, Deprecated, Info, Debug, DB Error)<\/li>\n<li>Detects duplicate\/repeated errors and groups them with a count badge<\/li>\n<li>Collapses multi-line stack traces so your screen isn't buried in noise<\/li>\n<li>Highlights your search term inline across all matching entries<\/li>\n<li>Shows relative timestamps (\"3 minutes ago\") with the full timestamp on hover<\/li>\n<li>Lets you copy any entry to clipboard in one click<\/li>\n<li>Opens the exact file and line in VS Code, PhpStorm, or Sublime Text \u2014 no copy-pasting paths<\/li>\n<\/ul>\n\n<h4>Core Features<\/h4>\n\n<p><strong>Smart Log Parsing<\/strong>\nAutomatically detects PHP Fatal errors, Warnings, Notices, Deprecated calls, Database errors, and custom <code>error_log()<\/code> output. No setup required.<\/p>\n\n<p><strong>Full-Text Search<\/strong>\nSearch across message content, file paths, and timestamps instantly. Matches are highlighted in-place with a count of results.<\/p>\n\n<p><strong>Level Filters<\/strong>\nFilter by Fatal, Error, Warning, Notice, Deprecated, Info, Debug, or DB Error with a single click. Counts update live with each filter.<\/p>\n\n<p><strong>Collapsible Stack Traces<\/strong>\nLong stack traces are collapsed by default. Expand only the ones you care about \u2014 keeping your view clean and focused.<\/p>\n\n<p><strong>Duplicate Detection<\/strong>\nConsecutive identical log entries are automatically grouped into a single entry with a <code>\u00d7N<\/code> badge. Stop scrolling past 200 copies of the same warning.<\/p>\n\n<p><strong>Relative Timestamps<\/strong>\nLog timestamps show as \"2 minutes ago\", \"1 hour ago\" etc. Hover to see the full timestamp. Great for spotting when errors started.<\/p>\n\n<p><strong>Copy to Clipboard<\/strong>\nOne-click copy on every log entry. Paste directly into Slack, a bug report, or a support ticket.<\/p>\n\n<p><strong>Log Export<\/strong>\nDownload your current filtered view as a <code>.log<\/code> file or structured <code>.json<\/code> \u2014 perfect for sharing with your team or attaching to issue trackers.<\/p>\n\n<p><strong>Editor Integration<\/strong>\nClick any file path in a log entry to jump directly to that file and line in:\n* Visual Studio Code\n* PhpStorm\n* Sublime Text\n* Falls back to <code>file:\/\/<\/code> if no supported editor is detected<\/p>\n\n<p><strong>Auto-Refresh<\/strong>\nThe log viewer refreshes automatically every 30 seconds so you can watch logs update in real time without touching the page.<\/p>\n\n<p><strong>Secure by Default<\/strong>\nOnly users with <code>manage_options<\/code> capability can access LogIQ. All AJAX requests are nonce-verified. Sensitive values (passwords, API keys, auth tokens) are masked automatically before display.<\/p>\n\n<p><strong>Pagination<\/strong>\nHandles large log files gracefully \u2014 reads up to 5 MB from the end of the file, paginates entries, and never loads more than needed.<\/p>\n\n<h4>Perfect For<\/h4>\n\n<ul>\n<li>WordPress plugin and theme developers<\/li>\n<li>Agencies managing multiple client sites<\/li>\n<li>Developers debugging WooCommerce, REST APIs, and third-party integrations<\/li>\n<li>Anyone who's tired of <code>tail -f debug.log<\/code><\/li>\n<\/ul>\n\n<h4>How to Use error_log() with LogIQ<\/h4>\n\n<p>LogIQ reads from WordPress's standard debug log. Write to it from anywhere in your code:<\/p>\n\n<pre><code>error_log( 'Something happened' );\n<\/code><\/pre>\n\n<p>For arrays and objects:<\/p>\n\n<pre><code>error_log( print_r( $my_array, true ) );\n<\/code><\/pre>\n\n<p>For exceptions:<\/p>\n\n<pre><code>error_log( $exception-&gt;getMessage() . ' in ' . $exception-&gt;getFile() . ':' . $exception-&gt;getLine() );\n<\/code><\/pre>\n\n<h3>Privacy Policy<\/h3>\n\n<p>LogIQ does not collect, transmit, or store any personal data outside of your own server. All log data remains local. The plugin does not make any external HTTP requests.<\/p>\n\n<h3>Credits<\/h3>\n\n<p>Developed by <a href=\"https:\/\/akmelias.com\">AKM Elias<\/a>. If LogIQ saves you time, consider leaving a review on WordPress.org \u2014 it helps more developers find it.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>log-iq<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through <strong>Plugins &gt; Installed Plugins<\/strong><\/li>\n<li>Go to <strong>Tools &gt; LogIQ Debug<\/strong><\/li>\n<li>Enable <strong>WP_DEBUG<\/strong> and <strong>WP_DEBUG_LOG<\/strong> in the settings panel and save<\/li>\n<li>Your logs will start appearing immediately<\/li>\n<\/ol>\n\n<p><strong>Note:<\/strong> LogIQ writes its own log file to <code>\/wp-content\/uploads\/logiq-debug.log<\/code>. This directory is outside the web root in most setups \u2014 but for extra security, you can add the following to your <code>.htaccess<\/code>:<\/p>\n\n<pre><code>&lt;Files \"logiq-debug.log\"&gt;\nOrder Allow,Deny\nDeny from all\n&lt;\/Files&gt;\n<\/code><\/pre>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20logiq%20require%20wp_debug%20to%20be%20set%20in%20wp-config.php%3F\"><h3>Does LogIQ require WP_DEBUG to be set in wp-config.php?<\/h3><\/dt>\n<dd><p>No. LogIQ manages its own debug settings via the WordPress options table. You don't need to touch <code>wp-config.php<\/code>. Enable settings from the LogIQ settings panel inside the admin.<\/p><\/dd>\n<dt id=\"where%20is%20the%20log%20file%20stored%3F\"><h3>Where is the log file stored?<\/h3><\/dt>\n<dd><p>LogIQ stores its log file at <code>\/wp-content\/uploads\/logiq-debug.log<\/code>. This is separate from the standard WordPress <code>debug.log<\/code> file.<\/p><\/dd>\n<dt id=\"will%20logiq%20slow%20down%20my%20site%3F\"><h3>Will LogIQ slow down my site?<\/h3><\/dt>\n<dd><p>No. LogIQ only loads its assets on its own admin page. It adds zero overhead to the frontend or any other admin page.<\/p><\/dd>\n<dt id=\"which%20editors%20are%20supported%20for%20file%20links%3F\"><h3>Which editors are supported for file links?<\/h3><\/dt>\n<dd><p>Visual Studio Code, PhpStorm, and Sublime Text. LogIQ auto-detects which editor is installed on your server. If none are found, links use the <code>file:\/\/<\/code> protocol.<\/p><\/dd>\n<dt id=\"can%20i%20use%20logiq%20on%20a%20live%20production%20site%3F\"><h3>Can I use LogIQ on a live production site?<\/h3><\/dt>\n<dd><p>LogIQ is designed for development and staging environments. Debug logging on production can expose sensitive information in log output. Use with caution on live sites.<\/p><\/dd>\n<dt id=\"is%20logiq%20compatible%20with%20multisite%3F\"><h3>Is LogIQ compatible with multisite?<\/h3><\/dt>\n<dd><p>LogIQ is currently designed for single-site installs. Multisite support is planned for a future release.<\/p><\/dd>\n<dt id=\"how%20does%20the%20duplicate%20detection%20work%3F\"><h3>How does the duplicate detection work?<\/h3><\/dt>\n<dd><p>LogIQ groups consecutive identical log entries (same level + same message) into a single entry with a <code>\u00d7N<\/code> count badge. This keeps your view readable when a loop or repeated process logs the same error many times.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.0<\/h4>\n\n<p>March 2026<\/p>\n\n<p><strong>New Features<\/strong>\n* Full-text search with inline highlighted matches and result count\n* Collapsible stack traces \u2014 long entries collapse by default, expand on demand\n* Log export \u2014 download current filtered view as <code>.log<\/code> or <code>.json<\/code>\n* Copy-to-clipboard button on every log entry\n* Duplicate \/ repeated entry detection with <code>\u00d7N<\/code> count badge\n* Relative timestamps (\"3 minutes ago\") with full timestamp on hover<\/p>\n\n<p><strong>Bug Fixes<\/strong>\n* Fixed pagination conflict with WordPress native admin list table pagination\n* Fixed plugin assets loading on every admin page instead of only the LogIQ page\n* Fixed PHP warning from <code>realpath()<\/code> returning false on non-existent directories\n* Fixed potential memory exhaustion on large log files \u2014 now reads at most 5 MB from end of file\n* Fixed <code>preg_split<\/code> returning false on malformed log files\n* Fixed initial log file header text breaking the timestamp parser\n* Fixed <code>sanitize_log_level<\/code> not recognizing <code>notice<\/code> and <code>dberror<\/code> levels\n* Fixed <code>logiq_write_log<\/code> failing silently when the file was not writable\n* Removed dead <code>wpdb_query<\/code> hook that doesn't exist in WordPress core\n* Removed empty <code>logiq_apply_debug_settings<\/code> function called on every page load<\/p>\n\n<h4>1.0.3<\/h4>\n\n<p>July 2025\n* Added LogIQ shortcut to the WordPress admin bar\n* Removed unnecessary internal logging<\/p>\n\n<h4>1.0.2<\/h4>\n\n<p>June 2025\n* Added Database error log detection and filtering<\/p>\n\n<h4>1.0.1<\/h4>\n\n<p>June 2025\n* Made LogIQ independent of wp-config.php constants\n* General bug fixes and stability improvements<\/p>\n\n<h4>1.0.0<\/h4>\n\n<p>May 2025\n* Initial release\n* Real-time log viewing with auto-refresh\n* Smart log parsing and level categorization\n* Level filter tabs (Fatal, Error, Warning, Notice, Deprecated, Info, Debug)\n* Editor integration with clickable file links (VS Code, PhpStorm, Sublime Text)\n* Sensitive data masking (passwords, API keys, auth tokens)<\/p>","raw_excerpt":"Stop digging through raw log files. LogIQ gives WordPress developers a smart, searchable, and beautiful debug log viewer \u2014 right inside the admin.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/232644","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=232644"}],"author":[{"embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/akmelias"}],"wp:attachment":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=232644"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=232644"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=232644"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=232644"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=232644"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=232644"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}