- 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
107 lines
3.8 KiB
PHP
107 lines
3.8 KiB
PHP
<?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);
|
|
}
|
|
}
|
|
}
|
|
}
|