10 KiB
Activity Logging - Quick Start Guide
🎯 What is Activity Logging?
Activity logging is a system that automatically records every action users perform in your application. This includes:
- Creating new records
- Editing existing records
- Deleting records
- Exporting data
Every action is saved with:
- Who performed it (user)
- What was done (action type)
- When it happened (timestamp)
- Where it happened (which model/table)
- How much changed (old vs new values)
✅ What Gets Logged?
Kontrakan Operations
| Operation | Logged As |
|---|---|
| Create new kontrakan | ✅ Yes - "Membuat kontrakan baru: {nama}" |
| Update kontrakan | ✅ Yes - "Memperbarui kontrakan: {nama}" |
| Delete kontrakan | ✅ Yes - "Menghapus kontrakan: {nama}" |
| Bulk delete kontrakan | ✅ Yes - Logged for each item |
Laundry Operations
| Operation | Logged As |
|---|---|
| Create new laundry | ✅ Yes - "Membuat laundry baru: {nama}" |
| Update laundry | ✅ Yes - "Memperbarui laundry: {nama}" |
| Delete laundry | ✅ Yes - "Menghapus laundry: {nama}" |
| Bulk delete laundry | ✅ Yes - Logged for each item |
Export Operations
| Operation | Logged As |
|---|---|
| Export kontrakan to Excel | ✅ Yes - "Export data Kontrakan ke Excel (X items)" |
| Export kontrakan to PDF | ✅ Yes - "Export data Kontrakan ke PDF (X items)" |
| Export laundry to Excel | ✅ Yes - "Export data Laundry ke Excel (X items)" |
| Export laundry to PDF | ✅ Yes - "Export data Laundry ke PDF (X items)" |
| Export SAW results to Excel | ✅ Yes - "Export hasil SAW ke Excel (type)" |
| Export SAW results to PDF | ✅ Yes - "Export hasil SAW ke PDF (type)" |
User Management
| Operation | Logged As |
|---|---|
| Create user | ✅ Yes - "Membuat user baru" |
| Update user | ✅ Yes - "Memperbarui user" |
| Delete user | ✅ Yes - "Menghapus user" |
| Restore user | ✅ Yes - "Mengembalikan user" |
🔍 How to View Activity Logs
Step 1: Access Admin Panel
- Login with your admin account
- Click the dropdown menu in top-right corner
- Select "Admin" → "Activity Logs"
Step 2: View All Logs
- You'll see a table with all activities
- Columns show:
- Timestamp: When the action happened
- User: Who did it
- Action: Type of action (create, update, delete, export)
- Description: What was done
- Model: What was affected (Kontrakan, Laundry, User, etc.)
- IP Address: Where they were accessing from
Step 3: Filter Logs
Use the filter section to find specific logs:
By User:
Select user from dropdown → Click Filter
By Action Type:
Select action: Create, Update, Delete, Export, Login
By Model Type:
Select: Kontrakan, Laundry, User, SAW
By Date Range:
Select start date and end date → Click Filter
Step 4: Export Logs
Click "Export to CSV" button
→ Opens in Excel or Google Sheets
→ Contains all filtered logs
💾 What Data is Stored?
For Create Operations
{
user: "Admin Name",
action: "create",
description: "Membuat kontrakan baru: Rumah Nyaman",
model_type: "Kontrakan",
model_id: 123,
timestamp: "2025-01-15 10:30:45",
new_values: {
nama: "Rumah Nyaman",
alamat: "Jl. Raya No. 10",
harga: 1500000,
...
}
}
For Update Operations
{
user: "Admin Name",
action: "update",
description: "Memperbarui kontrakan: Rumah Nyaman",
model_type: "Kontrakan",
model_id: 123,
timestamp: "2025-01-15 11:45:20",
old_values: {
harga: 1500000,
jumlah_kamar: 3
},
new_values: {
harga: 1600000,
jumlah_kamar: 4
}
}
For Delete Operations
{
user: "Admin Name",
action: "delete",
description: "Menghapus kontrakan: Rumah Nyaman",
model_type: "Kontrakan",
model_id: 123,
timestamp: "2025-01-15 12:00:00",
old_values: {
// Complete kontrakan data that was deleted
}
}
For Export Operations
{
user: "Admin Name",
action: "export",
description: "Export data Kontrakan ke Excel (15 items)",
model_type: "Kontrakan",
model_id: null, // No specific model for bulk exports
timestamp: "2025-01-15 13:15:30"
}
🎯 Common Use Cases
Use Case 1: Track Who Deleted a Record
1. Go to Admin → Activity Logs
2. Select Model Type: "Kontrakan"
3. Select Action: "delete"
4. Click Filter
5. See who deleted which kontrakan and when
Use Case 2: View What Changed in an Update
1. Go to Admin → Activity Logs
2. Select User: "Manager Name"
3. Select Action: "update"
4. Click on the log entry
5. See "Old Values" and "New Values" side by side
6. Understand exactly what was changed
Use Case 3: Monitor Export Activity
1. Go to Admin → Activity Logs
2. Select Action: "export"
3. Click Filter
4. See all exports with count and timestamp
5. Identify which data was exported and by whom
Use Case 4: Generate Audit Report
1. Go to Admin → Activity Logs
2. Set Date Range: "Jan 1 - Jan 31"
3. Click Filter
4. Click "Export to CSV"
5. Use in Excel for reporting
🔐 Security Benefits
1. Accountability
- Every action is attributed to a user
- Users know their actions are tracked
- Encourages responsible data management
2. Audit Trail
- Track who did what, when, and where
- Required for compliance and regulations
- Useful for investigating issues
3. Data Recovery
- If data is accidentally deleted, you know:
- When it was deleted
- Who deleted it
- What was in it (stored in old_values)
- Can manually restore if needed
4. Security Monitoring
- IP addresses logged for each action
- User agent information recorded
- Detect suspicious access patterns
5. Forensic Analysis
- Investigate data breaches or unauthorized access
- Timeline of events for compliance investigations
- Evidence for security audits
⚙️ Technical Details
Database Table
CREATE TABLE activity_logs (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
user_id BIGINT,
action VARCHAR(255),
description TEXT,
model_type VARCHAR(255),
model_id BIGINT NULL,
old_values JSON NULL,
new_values JSON NULL,
ip_address VARCHAR(45),
user_agent TEXT,
created_at TIMESTAMP,
updated_at TIMESTAMP,
INDEX idx_user_id (user_id),
INDEX idx_created_at (created_at),
INDEX idx_action (action),
INDEX idx_model_type (model_type)
);
How It Works
User Action
↓
Controller Method (e.g., store(), update(), destroy())
↓
ActivityLog::log() called
↓
Data stored in activity_logs table
↓
Available in Admin Panel for viewing
Code Example
// When user creates kontrakan
$kontrakan = Kontrakan::create([...]);
// This is called automatically
ActivityLog::log(
'create', // Action
"Membuat kontrakan baru: {$kontrakan->nama}", // Description
'Kontrakan', // Model type
$kontrakan->id // Model ID
);
// Log entry created in database
// User can see it in Admin → Activity Logs
📊 Example Reports
Monthly Activity Report
Date Range: January 2025
Total Actions: 156
By Action Type:
- Create: 42
- Update: 78
- Delete: 12
- Export: 24
By Model Type:
- Kontrakan: 98
- Laundry: 45
- User: 13
By User:
- Admin A: 95 actions
- Admin B: 61 actions
Delete Activity Report
Month: January 2025
Total Deletions: 12
By Model:
- Kontrakan: 8 items
- Laundry: 4 items
Detail:
- Jan 5: Admin A deleted "Rumah Nyaman"
- Jan 12: Admin B deleted "Laundry Express"
- ...
Export Activity Report
Month: January 2025
Total Exports: 24
By Format:
- Excel: 14
- PDF: 10
By Data Type:
- Kontrakan: 15
- Laundry: 9
Peak Hour: 10:00 AM (5 exports)
❓ FAQ
Q: Can I delete activity logs? A: Only super_admin can. Go to Admin → Activity Logs → Click "Clear Logs" button. Use with caution - this is permanent!
Q: How long are logs kept? A: Indefinitely. They're never auto-deleted. This is important for compliance and auditing.
Q: Can I see what another user did? A: Yes, if you're super_admin. Filter by user to see their activities.
Q: What if I need logs from 2 years ago? A: All logs are permanent unless manually cleared. You can filter by date range to find them.
Q: Does logging slow down the system? A: No, logging is non-blocking and doesn't impact performance.
Q: Can users see their own activity logs? A: Only super_admin can view logs. Regular users cannot.
Q: What if there's a password change? A: Password changes are logged, but the actual password is never logged (only that it was changed).
🚀 Best Practices
For Administrators
- Regular Review: Check activity logs weekly
- Monitor Deletions: Alert on suspicious bulk deletions
- Track Exports: Monitor who exports data and when
- User Compliance: Ensure users are following policies
- Backup Logs: Regularly export and archive logs
For Security
- Audit Trail: Keep logs for at least 1 year
- Access Control: Only show logs to admin users
- IP Monitoring: Track unusual IP addresses
- Anomaly Detection: Set up alerts for suspicious patterns
For Compliance
- Documentation: Keep printed reports of activity
- Data Retention: Document your log retention policy
- Audit Ready: Always be able to generate reports
- User Agreement: Inform users that activity is logged
🎓 Learning Path
- Beginner: Learn to view and filter activity logs
- Intermediate: Understand log data structure and CSV export
- Advanced: Use logs for security analysis and reporting
- Expert: Integrate logs with external monitoring systems
📞 Support
For questions about activity logging:
- Check the admin panel help (?) icons
- Review ACTIVITY_LOGGING_INTEGRATION.md
- Check application logs in
/storage/logs/laravel.log - Contact system administrator
Last Updated: 2025 Version: 2.5 Status: ✅ Active and Recording
Start using activity logs today to enhance security, compliance, and accountability in your system!