mirror of
https://github.com/torrentpier/torrentpier
synced 2025-08-20 21:33:54 -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:**
|
**Merged pull requests:**
|
||||||
|
|
||||||
- Release 2.4.3 🐎 ([belomaxorka](https://github.com/belomaxorka))
|
- 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))
|
- 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)
|
## [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
|
* Server variables initialize
|
||||||
|
|
|
@ -447,14 +447,15 @@ $bb_cfg['adv_email'] = "adv@$domain_name"; // advertisement email
|
||||||
// Error reporting
|
// Error reporting
|
||||||
$bb_cfg['bugsnag'] = [
|
$bb_cfg['bugsnag'] = [
|
||||||
'enabled' => true,
|
'enabled' => true,
|
||||||
'api_key' => '33b3ed0102946bab71341f9edc125e21',
|
'api_key' => '33b3ed0102946bab71341f9edc125e21', // Don't change this if you want to help us find bugs
|
||||||
];
|
];
|
||||||
|
|
||||||
$bb_cfg['telegram_sender'] = [
|
$bb_cfg['telegram_sender'] = [
|
||||||
|
// How to get chat_id? https://api.telegram.org/bot{YOUR_TOKEN}/getUpdates
|
||||||
'enabled' => false,
|
'enabled' => false,
|
||||||
'token' => '',
|
'token' => '', // Bot token
|
||||||
'chat_id' => '',
|
'chat_id' => '', // Bot chat_id
|
||||||
'timeout' => 10
|
'timeout' => 10 // Timeout for responses
|
||||||
];
|
];
|
||||||
|
|
||||||
// Special users
|
// Special users
|
||||||
|
|
|
@ -64,10 +64,8 @@ define('LOG_MAX_SIZE', 1048576); // bytes
|
||||||
|
|
||||||
// Error reporting
|
// Error reporting
|
||||||
ini_set('error_reporting', E_ALL); // PHP error reporting mode | https://www.php.net/manual/en/errorfunc.constants.php
|
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
|
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)
|
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)
|
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
|
* 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
|
private Run $whoops;
|
||||||
{
|
|
||||||
self::$envType = env('APP_ENV', 'local');
|
|
||||||
|
|
||||||
if (self::$envType === 'production') {
|
/**
|
||||||
self::getBugsnag();
|
* Constructor
|
||||||
} else {
|
*/
|
||||||
self::getWhoops();
|
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
|
* @return void
|
||||||
*/
|
*/
|
||||||
private static function getBugsnag(): void
|
private function getBugsnag(): void
|
||||||
{
|
{
|
||||||
global $bb_cfg;
|
global $bb_cfg;
|
||||||
|
|
||||||
|
@ -68,8 +85,40 @@ class Dev
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$bugsnag = Client::make($bb_cfg['bugsnag']['api_key']);
|
Handler::register(Client::make($bb_cfg['bugsnag']['api_key']));
|
||||||
Handler::register($bugsnag);
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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
|
* @return void
|
||||||
*/
|
*/
|
||||||
private static function getWhoops(): void
|
private function getWhoops(): void
|
||||||
{
|
{
|
||||||
global $bb_cfg;
|
|
||||||
|
|
||||||
if (!APP_DEBUG) {
|
if (!APP_DEBUG) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$whoops = new Run;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show errors on page
|
* Show errors on page
|
||||||
*/
|
*/
|
||||||
$whoops->pushHandler(new PrettyPageHandler);
|
$this->whoops->pushHandler(new PrettyPageHandler);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show log in browser console
|
* Show log in browser console
|
||||||
|
@ -102,12 +147,12 @@ class Dev
|
||||||
[(new BrowserConsoleHandler())
|
[(new BrowserConsoleHandler())
|
||||||
->setFormatter((new LineFormatter(null, null, true)))]
|
->setFormatter((new LineFormatter(null, null, true)))]
|
||||||
)));
|
)));
|
||||||
$whoops->pushHandler($loggingInConsole);
|
$this->whoops->pushHandler($loggingInConsole);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Log errors in file
|
* Log errors in file
|
||||||
*/
|
*/
|
||||||
if (ini_get('log_errors') == 1) {
|
if ((int)ini_get('log_errors') === 1) {
|
||||||
$loggingInFile = new PlainTextHandler();
|
$loggingInFile = new PlainTextHandler();
|
||||||
$loggingInFile->loggerOnly(true);
|
$loggingInFile->loggerOnly(true);
|
||||||
$loggingInFile->setLogger((new Logger(
|
$loggingInFile->setLogger((new Logger(
|
||||||
|
@ -115,24 +160,8 @@ 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);
|
$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