mirror of
https://github.com/torrentpier/torrentpier
synced 2025-08-14 18:48:21 -07:00
Improved app debug (#1438)
* Improved app debug * Updated * Update config.php * Update Dev.php * Update Dev.php * Update Dev.php * Update Dev.php * Update config.php * Update Dev.php * Update CHANGELOG.md
This commit is contained in:
parent
521af98b69
commit
cfcda68a99
5 changed files with 77 additions and 48 deletions
|
@ -6,6 +6,7 @@
|
|||
**Merged pull requests:**
|
||||
|
||||
- Release 2.4.3 🐎 ([belomaxorka](https://github.com/belomaxorka))
|
||||
- Improved app debug [\#1438](https://github.com/torrentpier/torrentpier/pull/1438) ([belomaxorka](https://github.com/belomaxorka))
|
||||
- Minor improvements [\#1435](https://github.com/torrentpier/torrentpier/pull/1435) ([belomaxorka](https://github.com/belomaxorka))
|
||||
|
||||
## [v2.4.2](https://github.com/torrentpier/torrentpier/tree/v2.4.2) (2024-03-30)
|
||||
|
|
|
@ -87,9 +87,9 @@ if (is_file(BB_PATH . '/library/config.local.php')) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Progressive error reporting
|
||||
* Error reporting
|
||||
*/
|
||||
\TorrentPier\Dev::initDebug();
|
||||
$debug = new \TorrentPier\Dev();
|
||||
|
||||
/**
|
||||
* Server variables initialize
|
||||
|
|
|
@ -447,14 +447,15 @@ $bb_cfg['adv_email'] = "adv@$domain_name"; // advertisement email
|
|||
// Error reporting
|
||||
$bb_cfg['bugsnag'] = [
|
||||
'enabled' => true,
|
||||
'api_key' => '33b3ed0102946bab71341f9edc125e21',
|
||||
'api_key' => '33b3ed0102946bab71341f9edc125e21', // Don't change this if you want to help us find bugs
|
||||
];
|
||||
|
||||
$bb_cfg['telegram_sender'] = [
|
||||
// How to get chat_id? https://api.telegram.org/bot{YOUR_TOKEN}/getUpdates
|
||||
'enabled' => false,
|
||||
'token' => '',
|
||||
'chat_id' => '',
|
||||
'timeout' => 10
|
||||
'token' => '', // Bot token
|
||||
'chat_id' => '', // Bot chat_id
|
||||
'timeout' => 10 // Timeout for responses
|
||||
];
|
||||
|
||||
// Special users
|
||||
|
|
|
@ -64,10 +64,8 @@ define('LOG_MAX_SIZE', 1048576); // bytes
|
|||
|
||||
// Error reporting
|
||||
ini_set('error_reporting', E_ALL); // PHP error reporting mode | https://www.php.net/manual/en/errorfunc.constants.php
|
||||
ini_set('display_errors', 1); // Show general php errors
|
||||
ini_set('display_startup_errors', 1); // Show startup php errors
|
||||
define('MYSQLI_ERROR_REPORTING', MYSQLI_REPORT_ERROR); // MySQL error reporting mode | https://www.php.net/manual/mysqli-driver.report-mode.php
|
||||
ini_set('log_errors', 1); // php native logging
|
||||
ini_set('log_errors', 1); // Enable logging (For native & Whoops)
|
||||
ini_set('error_log', LOG_DIR . '/php_errors.log'); // path to log file enabled only if log_errors == 1 (native)
|
||||
define('WHOOPS_LOG_FILE', LOG_DIR . '/php_whoops.log'); // log file enabled only if log_errors == 1 and APP_DEBUG == true (whoops)
|
||||
|
||||
|
|
107
src/Dev.php
107
src/Dev.php
|
@ -35,24 +35,41 @@ class Dev
|
|||
/**
|
||||
* Environment type
|
||||
*
|
||||
* @var string|null
|
||||
* @var string
|
||||
*/
|
||||
public static ?string $envType = null;
|
||||
public string $envType = 'local';
|
||||
|
||||
/**
|
||||
* Base debug functionality init
|
||||
* Whoops instance
|
||||
*
|
||||
* @return void
|
||||
* @var Run
|
||||
*/
|
||||
public static function initDebug(): void
|
||||
{
|
||||
self::$envType = env('APP_ENV', 'local');
|
||||
private Run $whoops;
|
||||
|
||||
if (self::$envType === 'production') {
|
||||
self::getBugsnag();
|
||||
} else {
|
||||
self::getWhoops();
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->envType = env('APP_ENV', 'local');
|
||||
$this->whoops = new Run;
|
||||
|
||||
switch ($this->envType) {
|
||||
case 'production':
|
||||
ini_set('display_errors', 0);
|
||||
ini_set('display_startup_errors', 0);
|
||||
$this->getWhoopsProduction();
|
||||
break;
|
||||
case 'local':
|
||||
ini_set('display_errors', 1);
|
||||
ini_set('display_startup_errors', 1);
|
||||
$this->getWhoops();
|
||||
break;
|
||||
}
|
||||
$this->getBugsnag();
|
||||
$this->getTelegramSender();
|
||||
|
||||
$this->whoops->register();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -60,7 +77,7 @@ class Dev
|
|||
*
|
||||
* @return void
|
||||
*/
|
||||
private static function getBugsnag(): void
|
||||
private function getBugsnag(): void
|
||||
{
|
||||
global $bb_cfg;
|
||||
|
||||
|
@ -68,8 +85,40 @@ class Dev
|
|||
return;
|
||||
}
|
||||
|
||||
$bugsnag = Client::make($bb_cfg['bugsnag']['api_key']);
|
||||
Handler::register($bugsnag);
|
||||
Handler::register(Client::make($bb_cfg['bugsnag']['api_key']));
|
||||
}
|
||||
|
||||
/**
|
||||
* Telegram debug driver
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function getTelegramSender(): void
|
||||
{
|
||||
global $bb_cfg;
|
||||
|
||||
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: (int)$bb_cfg['telegram_sender']['timeout']))
|
||||
->setFormatter(new TelegramFormatter())]
|
||||
)));
|
||||
$this->whoops->pushHandler($telegramSender);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Whoops production debug driver
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function getWhoopsProduction(): void
|
||||
{
|
||||
$this->whoops->pushHandler(function () {
|
||||
echo 'Sorry, something went wrong. Drink coffee and come back after some time... ☕️';
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -77,20 +126,16 @@ class Dev
|
|||
*
|
||||
* @return void
|
||||
*/
|
||||
private static function getWhoops(): void
|
||||
private function getWhoops(): void
|
||||
{
|
||||
global $bb_cfg;
|
||||
|
||||
if (!APP_DEBUG) {
|
||||
return;
|
||||
}
|
||||
|
||||
$whoops = new Run;
|
||||
|
||||
/**
|
||||
* Show errors on page
|
||||
*/
|
||||
$whoops->pushHandler(new PrettyPageHandler);
|
||||
$this->whoops->pushHandler(new PrettyPageHandler);
|
||||
|
||||
/**
|
||||
* Show log in browser console
|
||||
|
@ -102,12 +147,12 @@ class Dev
|
|||
[(new BrowserConsoleHandler())
|
||||
->setFormatter((new LineFormatter(null, null, true)))]
|
||||
)));
|
||||
$whoops->pushHandler($loggingInConsole);
|
||||
$this->whoops->pushHandler($loggingInConsole);
|
||||
|
||||
/**
|
||||
* Log errors in file
|
||||
*/
|
||||
if (ini_get('log_errors') == 1) {
|
||||
if ((int)ini_get('log_errors') === 1) {
|
||||
$loggingInFile = new PlainTextHandler();
|
||||
$loggingInFile->loggerOnly(true);
|
||||
$loggingInFile->setLogger((new Logger(
|
||||
|
@ -115,24 +160,8 @@ class Dev
|
|||
[(new StreamHandler(WHOOPS_LOG_FILE))
|
||||
->setFormatter((new LineFormatter(null, null, true)))]
|
||||
)));
|
||||
$whoops->pushHandler($loggingInFile);
|
||||
$this->whoops->pushHandler($loggingInFile);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue