Compare commits

...

7 Commits

Author SHA1 Message Date
Abel Hoogeveen 9fe370c3e4
Updated to PHP 7.4, compatible with 8.0. 2021-11-24 20:08:35 +01:00
Abel Hoogeveen 4d74474327 Made FuzeWorks logger Log directly into Tracy. 2020-07-12 12:00:31 +02:00
Abel Hoogeveen c5a19353d5
Release 1.2.0 2019-09-21 17:15:37 +02:00
Abel Hoogeveen d88c7fccd5
Release 1.2.0-RC5 2019-09-18 00:13:36 +02:00
Abel Hoogeveen a060d8bb66
Release 1.2.0-RC4 2019-08-21 19:16:21 +02:00
Abel Hoogeveen 4dd45c56fd
Implemented changes requested by FuzeWorks\Application 2019-03-04 22:02:46 +01:00
Abel Hoogeveen bb6fa39d90
Tracy can now be disabled while it's still running.
- This allows the user to parse both Tracy and the FuzeWorks Logger
2019-03-01 11:19:17 +01:00
4 changed files with 43 additions and 60 deletions

View File

@ -1,7 +1,7 @@
FuzeWorks - Readme
===================
Version 1.2.0
Version 1.3.0
A versatile PHP Framework built to perform.

View File

@ -1,25 +1,18 @@
{
"name": "fuzeworks/tracycomponent",
"description": "FuzeWorks Framework Tracy Debugger Component",
"homepage": "https://techfuze.net/fuzeworks",
"homepage": "https://i15.nl/fuzeworks",
"license": ["MIT"],
"authors": [
{
"name": "TechFuze",
"homepage": "https://techfuze.net"
},
{
"name": "FuzeWorks Community",
"homepage": "https://techfuze.net/fuzeworks/contributors"
"name": "Abel Hoogeveen",
"homepage": "https://i15.nl"
}
],
"require": {
"php": ">=7.1.0",
"tracy/tracy": "2.5.*",
"fuzeworks/core": "1.2.0-RC2"
},
"require-dev": {
"phpunit/phpunit": "^7"
"php": ">=7.4.0",
"tracy/tracy": "2.8.*",
"fuzeworks/core": "~1.3.0"
},
"autoload": {
"psr-4": {

View File

@ -35,6 +35,7 @@
*/
namespace FuzeWorks;
use FuzeWorks\Exception\EventException;
use FuzeWorks\Exception\InvalidArgumentException;
use Tracy\Debugger;
@ -59,6 +60,13 @@ class TracyComponent implements iComponent
*/
protected static $enableTracy = true;
/**
* Set to true after tracy has been started
*
* @var bool $enabled
*/
protected static $enabled = false;
public function getName(): string
{
return 'TracyComponent';
@ -75,7 +83,7 @@ class TracyComponent implements iComponent
* Enables Tracy when requested to do so. Disables FuzeWorks Logger.
*
* @param Factory $container
* @throws Exception\EventException
* @throws EventException
*/
public function onCreateContainer(Factory $container)
{
@ -86,23 +94,41 @@ class TracyComponent implements iComponent
return;
}
// Disable screenLog
Events::addListener(function($event){
$event->setCancelled(true);
}, 'screenLogEvent');
// Enable Tracy. Use DEVELOPMENT mode when logger is enabled
if ($container->logger->isEnabled() == true)
$debuggerEnabled = $container->logger->isEnabled();
if ($debuggerEnabled)
Debugger::enable(Debugger::DEVELOPMENT, realpath(Core::$logDir));
else
Debugger::enable(Debugger::PRODUCTION, realpath(Core::$logDir));
// Disable FuzeWorks Logger
$container->logger->disable();
Logger::disableScreenLog();
// Reset exception handlers
set_error_handler(array('\FuzeWorks\Core', 'errorHandler'), E_ALL);
set_exception_handler(array('\FuzeWorks\Core', 'exceptionHandler'));
// Register exception handler
Core::addErrorHandler(['\Tracy\Debugger', 'errorHandler'], Priority::LOW);
// Tracy has an annoying default error 500 page.
// This page will be suppressed when in production mode.
if ($debuggerEnabled)
{
Core::addExceptionHandler(['\Tracy\Debugger', 'exceptionHandler'], Priority::LOW);
}
else
Core::addExceptionHandler([$this, 'exceptionHandler'], Priority::LOW);
// Enable bridges
GitTracyBridge::register();
LoggerTracyBridge::register();
self::$enabled = true;
}
public function exceptionHandler($exception, $exit = true)
{
Debugger::getLogger()->log($exception, \Tracy\Logger::EXCEPTION);
}
/**
@ -178,6 +204,6 @@ class TracyComponent implements iComponent
*/
public static function isEnabled(): bool
{
return self::$enableTracy;
return self::$enabled;
}
}

View File

@ -35,48 +35,12 @@
*/
?>
<style class="tracy-debug">
</style>
<div class="fuzeworks-LoggerPanel">
<h1> Logger</h1>
<div class="tracy-inner">
<table>
<thead>
<tr>
<th>#</th>
<th>Type</th>
<th>Message</th>
<th>File</th>
<th>Line</th>
<th>Timing</th>
</tr>
</thead>
<tbody>
<?php foreach ($logs as $key => $log): ?>
<?php if ($log['type'] === 'LEVEL_STOP')
{
continue;
}
elseif ($log['type'] === 'LEVEL_START')
{
$log['type'] = 'CINFO';
}
?>
<tr class="<?php echo($log['type']); ?>">
<td><?php echo( htmlspecialchars($key)); ?></td>
<td><?php echo( htmlspecialchars ($log['type'])); ?></td>
<td><?php echo( htmlspecialchars ($log['message'])); ?></td>
<td><?php echo( empty($log['logFile']) ? 'x' : htmlspecialchars ($log['logFile'])); ?></td>
<td><?php echo( empty($log['logLine']) ? 'x' : htmlspecialchars ($log['logLine'])); ?></td>
<td><?php echo(round($log['runtime'] * 1000, 4)); ?> ms</td>
</tr>
<?php endforeach ?>
</tbody>
</table>
<?php \FuzeWorks\Logger::logToScreen(); ?>
</div>
</div>