System Logs in rConfig V8 Core
The System Log Viewer lets you read the framework-level and OS-level log files behind rConfig V8 Core from the web interface, without command-line access. After reading this page, you can open a log file, read stack traces, search for a specific error, and download logs for a support request.
These are the raw technical logs from the Laravel framework, PHP, and background workers, sitting below the application layer. They are distinct from the Application Log, which records operational and security events (device connections, task results, user sign-ins) in the database.
When to use this
Section titled “When to use this”Use System Logs when something fails technically: a blank “white screen” or HTTP 500, an unexpected exception, a queue job that fails silently, or when rConfig support asks for a stack trace. Use the Application Log instead when investigating operational issues like a device that will not connect or a scheduled task that did not run.
System logs vs application logs
Section titled “System logs vs application logs”The two logging systems serve different layers. Pick the one that matches the problem.
| System Logs (this page) | Application Log |
|---|---|
| Laravel framework errors and exceptions | Business logic events (device connections) |
| Full stack traces | User authentication and authorization |
| PHP fatal errors and warnings | Configuration download outcomes |
| Queue worker processing detail and failures | Scheduled task results |
| Database query errors with SQL | Security audit trail |
| File-based, stored on the OS filesystem | Database-driven, stored in tables |
System Logs contain the deeper technical detail that would be impractical to store in database tables, so they complement the Application Log rather than replace it.
How system logs work
Section titled “How system logs work”The Log Viewer reads Laravel’s log files directly from the filesystem.
- The framework and rConfig application write entries to files in
/var/www/html/rconfig/storage/logs/. - Logs are stored as dated files (for example
laravel-2025-10-15.log) with automatic daily rotation. - Each entry carries a timestamp, severity level, message, context, and a stack trace where applicable.
- The Log Viewer parses these files and presents them in a searchable, collapsible interface.
- Older files accumulate until they are deleted, either through the viewer or on the command line.
What the Log Viewer gives you
Section titled “What the Log Viewer gives you”- Formatted display with syntax highlighting for stack traces and error messages
- Collapsible entries so large traces can be hidden until needed
- Keyword search across the contents of a log file
- Bulk delete of multiple log files to reclaim disk space
- Download of a full log file for offline analysis or support requests
- Severity filtering across emergency, alert, critical, error, warning, info, and debug
Prerequisites
Section titled “Prerequisites”- Admin role: only users with the
adminrole can open System Logs, because the contents are technically sensitive. - Read access for the web server to
/var/www/html/rconfig/storage/logs/.
View system logs
Section titled “View system logs”Open the Log Viewer
Section titled “Open the Log Viewer”- Select System Logs from the main navigation menu.
- Review the list of available log files, ordered by date with the newest first.
Each entry in the list shows the filename (typically laravel-YYYY-MM-DD.log), the file size, the last modified date, and a three-dot actions menu.
Read a log file
Section titled “Read a log file”- Click the log filename in the list.
- Read the entries, ordered by timestamp with the newest first. Each shows a timestamp with timezone, a colour-coded severity level, the message, any context, and a stack trace for exceptions.
- Click an entry to expand or collapse its detail.
Search a log file
Section titled “Search a log file”- Open the log file you want to search.
- Enter a search term in the search field at the top of the viewer. Useful terms include error text (
Connection refused,timeout,permission denied), class names (DeviceConnectionService,CommandExecutor), exception types (PDOException,ConnectionException), or a device hostname or IP. - Read the highlighted matches. The viewer scrolls to the first match.
Download a log file
Section titled “Download a log file”- Click the three-dot menu next to the filename.
- Select Download. The file downloads as plain text.
When raising a support request, download and attach the complete file rather than copying excerpts. The context around an error is often what makes it diagnosable.
Delete log files
Section titled “Delete log files”To delete one file, click the three-dot menu next to the filename, select Delete, and confirm.
To delete several at once, tick the checkboxes next to the filenames, open the bulk action menu at the top of the list, select Delete selected, and confirm.
Common log analysis scenarios
Section titled “Common log analysis scenarios”A white screen or 500 error
Section titled “A white screen or 500 error”- Open today’s (most recent) log file.
- Scroll to entries near the time the error occurred.
- Look for error or critical severity entries. A
PDOExceptionpoints at database connectivity, aPermissionDeniedExceptionat filesystem permissions, and aFatalErrorExceptionoften at PHP memory or timeout limits. - Read the stack trace to find the code path that triggered the error, then copy the full message and trace for a support request.
A queue job that failed silently
Section titled “A queue job that failed silently”- Open the log file for the time the job was scheduled.
- Search for the job class name (for example
DeviceConnectionJob,ConfigBackupJob). - Read the error entries containing that name to find the cause: a database deadlock under high concurrency, a timeout on a long-running operation, or a connection failure to an external system.
- Search for the job ID to see whether it was retried.
Slow performance or database errors
Section titled “Slow performance or database errors”- Search for
QueryExceptionorPDOException. - Read the SQL in the exception context. Look for long-running queries without indexes, deadlock errors, or connection pool exhaustion under load.
- Note the frequency of similar failures to tell a one-off from a systemic issue.
Troubleshooting
Section titled “Troubleshooting”The Log Viewer shows no log files
Section titled “The Log Viewer shows no log files”Confirm the directory exists and is readable.
- Verify the directory exists:
Terminal window ls -la /var/www/html/rconfig/storage/logs/ - Fix ownership and permissions if needed:
Terminal window sudo chown -R www-data:www-data /var/www/html/rconfig/storage/logs/sudo chmod -R 755 /var/www/html/rconfig/storage/logs/ - Check the logging channel is set:
Terminal window grep LOG_CHANNEL /var/www/html/rconfig/.env - Write a test entry:
Terminal window php /var/www/html/rconfig/artisan tinkerLog::info('Test log entry'); - Refresh the Log Viewer to confirm the test entry appears.
Permission denied opening the Log Viewer
Section titled “Permission denied opening the Log Viewer”Confirm the user has the right role.
- Sign out and back in to refresh session permissions.
- Check the account has the
adminrole in the user management interface. - If you should have admin access but do not, ask an existing administrator to update your role on the User Management page.
Log files growing excessively large
Section titled “Log files growing excessively large”Check file sizes and the log level.
- Check current sizes:
Terminal window ls -lh /var/www/html/rconfig/storage/logs/ - Check the configured log level:
Terminal window grep LOG_LEVEL /var/www/html/rconfig/.env - Set an appropriate level for production:
Terminal window LOG_LEVEL=info - Read recent entries to find the repeated error:
Terminal window tail -100 /var/www/html/rconfig/storage/logs/laravel.log - Fix the underlying error, then delete old files through the viewer or on the command line:
Terminal window find /var/www/html/rconfig/storage/logs/ -name "laravel-*.log" -mtime +30 -delete
The Log Viewer loads slowly
Section titled “The Log Viewer loads slowly”Large individual files are the usual cause.
- Check the size of today’s file:
Terminal window ls -lh /var/www/html/rconfig/storage/logs/laravel-$(date +%Y-%m-%d).log - If a file exceeds 100MB, download it and read it offline instead of in the browser.
- Raise the PHP memory limit if needed:
Set
Terminal window sudo nano /etc/php/8.2/fpm/php.inimemory_limit = 512Mor higher. - Restart PHP-FPM:
Terminal window sudo systemctl restart php8.2-fpm - Delete old files to shorten the list.
Common gotchas
Section titled “Common gotchas”Quick reference
Section titled “Quick reference”Log severity levels
Section titled “Log severity levels”| Severity | When to use | Typical contents |
|---|---|---|
| emergency | System unusable | Critical application crashes |
| alert | Immediate action required | Database unavailable, service failure |
| critical | Critical conditions | Application component failures |
| error | Error conditions | Exceptions, failed operations |
| warning | Warning conditions | Deprecated feature usage, nearing limits |
| info | Informational | Routine operations, successful tasks |
| debug | Debug-level messages | Detailed execution flow, variable dumps |
Common exception types
Section titled “Common exception types”| Exception | Typical cause | Where to investigate |
|---|---|---|
| PDOException | Database connectivity or query issues | Database configuration, network |
| ConnectionException | Device or service connection failures | Firewall rules, device availability |
| TimeoutException | Operation exceeded its time limit | System resources, network latency |
| PermissionDeniedException | Filesystem or application permissions | Directory ownership, file permissions |
| FatalErrorException | PHP fatal error (memory, syntax) | PHP configuration, code issues |
| ValidationException | Invalid input data | Input validation logic, data format |
Command-line log analysis
Section titled “Command-line log analysis”tail -f /var/www/html/rconfig/storage/logs/laravel.log
grep -i "exception" /var/www/html/rconfig/storage/logs/laravel-$(date +%Y-%m-%d).log
grep "ERROR" /var/www/html/rconfig/storage/logs/laravel.log | wc -l
find /var/www/html/rconfig/storage/logs/ -name "laravel-*.log" -mtime +30 -ls
du -sh /var/www/html/rconfig/storage/logs/What’s next
Section titled “What’s next”- Application Log for the database-driven operational and security event trail
- Horizon Queue Manager to monitor background jobs and queue workers
- Device connectivity troubleshooting for diagnosing device-level connection failures