This commit is contained in:
Roman Kelesidis 2024-04-03 12:59:12 +07:00
commit e95b14b8c0
2 changed files with 55 additions and 48 deletions

View file

@ -445,16 +445,17 @@ $bb_cfg['abuse_email'] = "abuse@$domain_name"; // abuse email (e.g. DMCA)
$bb_cfg['adv_email'] = "adv@$domain_name"; // advertisement email $bb_cfg['adv_email'] = "adv@$domain_name"; // advertisement email
// Error reporting // Error reporting
$bb_cfg['bugsnag'] = [ $bb_cfg['error_reporting'] = [
'enabled' => true, 'enabled' => true,
'api_key' => '33b3ed0102946bab71341f9edc125e21', 'method' => 'telegram', // Available: bugsnag, telegram, both
]; 'bugsnag' => [
'api_key' => '33b3ed0102946bab71341f9edc125e21',
$bb_cfg['telegram_sender'] = [ ],
'enabled' => false, 'telegram' => [
'token' => '', 'token' => '',
'chat_id' => '', 'chat_id' => '',
'timeout' => 10 'timeout' => 10
]
]; ];
// Special users // Special users

View file

@ -35,9 +35,11 @@ class Dev
/** /**
* Environment type * Environment type
* *
* @var string|null * @var string
*/ */
public static ?string $envType = null; public static string $envType;
public static $whoops;
/** /**
* Base debug functionality init * Base debug functionality init
@ -46,30 +48,56 @@ class Dev
*/ */
public static function initDebug(): void public static function initDebug(): void
{ {
self::$envType = env('APP_ENV', 'local'); global $bb_cfg;
self::$envType = (string)env('APP_ENV', 'local');
self::$whoops = new Run;
if (self::$envType === 'production') { if (self::$envType === 'production') {
self::getBugsnag(); if ($bb_cfg['error_reporting']['enabled']) {
if ($bb_cfg['error_reporting']['method'] == 'both' || $bb_cfg['error_reporting']['method'] == 'bugsnag') {
self::getBugsnag($bb_cfg['error_reporting']['bugsnag']['api_key']);
}
if ($bb_cfg['error_reporting']['method'] == 'both' || $bb_cfg['error_reporting']['method'] == 'telegram') {
self::getTelegramSender($bb_cfg['error_reporting']['telegram']);
}
}
} else { } else {
self::getWhoops(); if (APP_DEBUG) {
self::getWhoops();
}
} }
self::$whoops->register();
} }
/** /**
* Bugsnag debug driver * Bugsnag debug driver
* *
* @param string $apiKey
* @return void * @return void
*/ */
private static function getBugsnag(): void private static function getBugsnag(string $apiKey): void
{ {
global $bb_cfg; Handler::register(Client::make($apiKey));
}
if (!$bb_cfg['bugsnag']['enabled']) { /**
return; * Send debug via Telegram
} *
* @param array $configTelegram
$bugsnag = Client::make($bb_cfg['bugsnag']['api_key']); * @return void
Handler::register($bugsnag); */
private static function getTelegramSender(array $configTelegram): void
{
$telegramSender = new PlainTextHandler();
$telegramSender->loggerOnly(true);
$telegramSender->setLogger((new Logger(
APP_NAME,
[(new TelegramHandler($configTelegram['token'], (int)$configTelegram['chat_id'], timeout: $configTelegram['timeout']))
->setFormatter(new TelegramFormatter())]
)));
self::$whoops->pushHandler($telegramSender);
} }
/** /**
@ -79,18 +107,10 @@ class Dev
*/ */
private static function getWhoops(): void private static function getWhoops(): void
{ {
global $bb_cfg;
if (!APP_DEBUG) {
return;
}
$whoops = new Run;
/** /**
* Show errors on page * Show errors on page
*/ */
$whoops->pushHandler(new PrettyPageHandler); self::$whoops->pushHandler(new PrettyPageHandler);
/** /**
* Show log in browser console * Show log in browser console
@ -102,7 +122,7 @@ class Dev
[(new BrowserConsoleHandler()) [(new BrowserConsoleHandler())
->setFormatter((new LineFormatter(null, null, true)))] ->setFormatter((new LineFormatter(null, null, true)))]
))); )));
$whoops->pushHandler($loggingInConsole); self::$whoops->pushHandler($loggingInConsole);
/** /**
* Log errors in file * Log errors in file
@ -115,24 +135,10 @@ class Dev
[(new StreamHandler(WHOOPS_LOG_FILE)) [(new StreamHandler(WHOOPS_LOG_FILE))
->setFormatter((new LineFormatter(null, null, true)))] ->setFormatter((new LineFormatter(null, null, true)))]
))); )));
$whoops->pushHandler($loggingInFile); self::$whoops->pushHandler($loggingInFile);
} }
/** self::$whoops->register();
* Send debug via Telegram
*/
if ($bb_cfg['telegram_sender']['enabled']) {
$telegramSender = new PlainTextHandler();
$telegramSender->loggerOnly(true);
$telegramSender->setLogger((new Logger(
APP_NAME,
[(new TelegramHandler($bb_cfg['telegram_sender']['token'], (int)$bb_cfg['telegram_sender']['chat_id'], timeout: $bb_cfg['telegram_sender']['timeout']))
->setFormatter(new TelegramFormatter())]
)));
$whoops->pushHandler($telegramSender);
}
$whoops->register();
} }
/** /**