feat: Add comprehensive documentation suite and reorganize project structure
- Created complete documentation in docs/ directory - Added PROJECT_OVERVIEW.md with feature highlights and getting started guide - Added ARCHITECTURE.md with system design and technical details - Added SECURITY.md with comprehensive security implementation guide - Added DEVELOPMENT.md with development workflows and best practices - Added DEPLOYMENT.md with production deployment instructions - Added API.md with complete REST API documentation - Added CONTRIBUTING.md with contribution guidelines - Added CHANGELOG.md with version history and migration notes - Reorganized all documentation files into docs/ directory for better organization - Updated README.md with proper documentation links and quick navigation - Enhanced project structure with professional documentation standards
This commit is contained in:
106
f_core/config.logging.php
Normal file
106
f_core/config.logging.php
Normal file
@@ -0,0 +1,106 @@
|
||||
<?php
|
||||
/*******************************************************************************************************************
|
||||
| Software Name : EasyStream
|
||||
| Software Description : High End YouTube Clone Script with Videos, Shorts, Streams, Images, Audio, Documents, Blogs
|
||||
| Software Author : (c) Sami Ahmed
|
||||
|*******************************************************************************************************************
|
||||
|
|
||||
|*******************************************************************************************************************
|
||||
| This source file is subject to the EasyStream Proprietary License Agreement.
|
||||
|
|
||||
| By using this software, you acknowledge having read this Agreement and agree to be bound thereby.
|
||||
|*******************************************************************************************************************
|
||||
| Copyright (c) 2025 Sami Ahmed. All rights reserved.
|
||||
|*******************************************************************************************************************/
|
||||
|
||||
defined('_ISVALID') or header('Location: /error');
|
||||
|
||||
// Logging Configuration
|
||||
$logging_config = [
|
||||
// Enable/disable different types of logging
|
||||
'file_logging' => true,
|
||||
'database_logging' => false, // Set to true if you want to log to database
|
||||
'error_alerts' => true, // Send email alerts for critical errors
|
||||
|
||||
// Log levels to record (set to false to disable specific levels)
|
||||
'log_levels' => [
|
||||
'emergency' => true,
|
||||
'alert' => true,
|
||||
'critical' => true,
|
||||
'error' => true,
|
||||
'warning' => true,
|
||||
'notice' => true,
|
||||
'info' => true,
|
||||
'debug' => false // Disable debug logging in production
|
||||
],
|
||||
|
||||
// File rotation settings
|
||||
'max_file_size' => 10 * 1024 * 1024, // 10MB
|
||||
'max_files' => 5,
|
||||
|
||||
// Alert settings
|
||||
'admin_email' => 'admin@yourdomain.com', // Change this to your admin email
|
||||
'alert_rate_limit' => [
|
||||
'max_alerts' => 5,
|
||||
'time_window' => 3600 // 1 hour
|
||||
],
|
||||
// Optional webhook for error alerts (e.g., Sentry/Slack)
|
||||
'error_webhook' => false,
|
||||
'webhook_url' => '',
|
||||
'webhook_levels' => ['emergency','alert','critical','error'],
|
||||
|
||||
// Performance monitoring
|
||||
'performance_thresholds' => [
|
||||
'slow_query' => 1.0, // Log queries taking more than 1 second
|
||||
'slow_request' => 2.0, // Log requests taking more than 2 seconds
|
||||
'memory_limit' => 128 * 1024 * 1024, // Log if memory usage exceeds 128MB
|
||||
],
|
||||
|
||||
// Security logging
|
||||
'security_events' => [
|
||||
'failed_logins' => true,
|
||||
'suspicious_uploads' => true,
|
||||
'rate_limit_exceeded' => true,
|
||||
'csrf_failures' => true,
|
||||
'sql_injection_attempts' => true,
|
||||
'xss_attempts' => true
|
||||
],
|
||||
|
||||
// Log retention (days)
|
||||
'retention_days' => 30,
|
||||
|
||||
// Sensitive data filtering (fields to exclude from logs)
|
||||
'sensitive_fields' => [
|
||||
'password',
|
||||
'passwd',
|
||||
'pwd',
|
||||
'secret',
|
||||
'token',
|
||||
'key',
|
||||
'credit_card',
|
||||
'ssn',
|
||||
'social_security'
|
||||
]
|
||||
];
|
||||
|
||||
// Apply configuration to global config
|
||||
foreach ($logging_config as $key => $value) {
|
||||
$cfg['logging_' . $key] = $value;
|
||||
}
|
||||
|
||||
// Set up log cleanup cron job (if needed)
|
||||
if (isset($cfg['logging_retention_days']) && $cfg['logging_retention_days'] > 0) {
|
||||
// This would typically be handled by a cron job
|
||||
// For now, we'll do a simple cleanup check occasionally
|
||||
if (rand(1, 100) === 1) { // 1% chance on each request
|
||||
$logDir = 'f_data/logs/';
|
||||
$cutoffTime = time() - ($cfg['logging_retention_days'] * 24 * 60 * 60);
|
||||
|
||||
$files = glob($logDir . '*.log*');
|
||||
foreach ($files as $file) {
|
||||
if (filemtime($file) < $cutoffTime) {
|
||||
unlink($file);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user