Working on a PHP framework
Here's the errors/debug messages it produces:
Of course complete with a stack trace when you click:

To the guys who rated me disagree - please come with your input. What would you suppose that I do instead? I've been going over this in my head a million times, and static classes was the closest I got to a global solution without the need for regular classes and or creating/getting instances first.
Rate your favourite one:
Current: 
<?php
namespace pTas;
require_once('ptas.php');
Debug::SetDebugLevel(DebugLevel::VERBOSE);
Core::IncludeModuleOnce('Curl');
Core::IncludeModuleOnce('Crap');
Curl::CreateInstance('derp', true);
Curl::CreateInstance('sherp');
Curl::SetInstance('sherp');
Curl::DeleteInstance('sherp');
Curl::SetInstance('sherp');
Debug::Error('Here\'s an "Error" debug message');
Debug::Warning('Here\'s a "Warning" debug message');
Debug::Info('Here\'s an "Info" debug message');
Debug::Debug('Here\'s a "Debug" debug message');
Debug::Verbose('Here\'s a "Verbose" debug message');
?>
Singleton: (even though it might be slower in a big environment) 
<?php
namespace pTas;
require_once('ptas.php');
$debugInstance = Debug::GetInstance();
$debugInstance->SetDebugLevel(DebugLevel::VERBOSE);
$coreInstance = Core::GetInstance();
$coreInstance->IncludeModuleOnce('Curl');
$coreInstance->IncludeModuleOnce('Crap');
$curlInstance = Curl::GetInstance();
$curlInstance->CreateInstance('derp', true);
$curlInstance->CreateInstance('sherp');
$curlInstance->SetInstance('sherp');
$curlInstance->DeleteInstance('sherp');
$curlInstance->SetInstance('sherp');
$debugInstance->Error('Here\'s an "Error" debug message');
$debugInstance->Warning('Here\'s a "Warning" debug message');
$debugInstance->Info('Here\'s an "Info" debug message');
$debugInstance->Debug('Here\'s a "Debug" debug message');
$debugInstance->Verbose('Here\'s a "Verbose" debug message');
?>
Referencing by core: 
<?php
namespace pTas;
require_once('ptas.php');
$core = Core::GetInstance();
$core->Debug->SetDebugLevel(DebugLevel::VERBOSE);
$core->IncludeModuleOnce('Curl');
$core->IncludeModuleOnce('Crap');
$core->Curl->CreateInstance('derp', true);
$core->Curl->CreateInstance('sherp');
$core->Curl->SetInstance('sherp');
$core->Curl->DeleteInstance('sherp');
$core->Curl->SetInstance('sherp');
$core->Debug->Error('Here\'s an "Error" debug message');
$core->Debug->Warning('Here\'s a "Warning" debug message');
$core->Debug->Info('Here\'s an "Info" debug message');
$core->Debug->Debug('Here\'s a "Debug" debug message');
$core->Debug->Verbose('Here\'s a "Verbose" debug message');
?>
Global variables #1 (yuck): 
<?php
namespace pTas;
require_once('ptas.php');
$GLOBALS["core"]->Debug->SetDebugLevel(DebugLevel::VERBOSE);
$GLOBALS["core"]->IncludeModuleOnce('Curl');
$GLOBALS["core"]->IncludeModuleOnce('Crap');
$GLOBALS["core"]->Curl->CreateInstance('derp', true);
$GLOBALS["core"]->Curl->CreateInstance('sherp');
$GLOBALS["core"]->Curl->SetInstance('sherp');
$GLOBALS["core"]->Curl->DeleteInstance('sherp');
$GLOBALS["core"]->Curl->SetInstance('sherp');
$GLOBALS["core"]->Debug->Error('Here\'s an "Error" debug message');
$GLOBALS["core"]->Debug->Warning('Here\'s a "Warning" debug message');
$GLOBALS["core"]->Debug->Info('Here\'s an "Info" debug message');
$GLOBALS["core"]->Debug->Debug('Here\'s a "Debug" debug message');
$GLOBALS["core"]->Debug->Verbose('Here\'s a "Verbose" debug message');
?>
Global variables #2 (yuck again): 
<?php
namespace pTas;
require_once('ptas.php');
$GLOBALS["debug"]->SetDebugLevel(DebugLevel::VERBOSE);
$GLOBALS["core"]->IncludeModuleOnce('Curl');
$GLOBALS["core"]->IncludeModuleOnce('Crap');
$GLOBALS["curl"]->CreateInstance('derp', true);
$GLOBALS["curl"]->CreateInstance('sherp');
$GLOBALS["curl"]->SetInstance('sherp');
$GLOBALS["curl"]->DeleteInstance('sherp');
$GLOBALS["curl"]->SetInstance('sherp');
$GLOBALS["debug"]->Error('Here\'s an "Error" debug message');
$GLOBALS["debug"]->Warning('Here\'s a "Warning" debug message');
$GLOBALS["debug"]->Info('Here\'s an "Info" debug message');
$GLOBALS["debug"]->Debug('Here\'s a "Debug" debug message');
$GLOBALS["debug"]->Verbose('Here\'s a "Verbose" debug message');
?>
Regular old (possible re)creating of classes: 
<?php
namespace pTas;
require_once('ptas.php');
$debugClass = new Debug();
$debugClass->SetDebugLevel(DebugLevel::VERBOSE);
$coreClass->IncludeModuleOnce('Curl');
$coreClass->IncludeModuleOnce('Crap');
$curlClass = new Curl();
$curlClass->CreateInstance('derp', true);
$curlClass->CreateInstance('sherp');
$curlClass->SetInstance('sherp');
$curlClass->DeleteInstance('sherp');
$curlClass->SetInstance('sherp');
$debugClass->Error('Here\'s an "Error" debug message');
$debugClass->Warning('Here\'s a "Warning" debug message');
$debugClass->Info('Here\'s an "Info" debug message');
$debugClass->Debug('Here\'s a "Debug" debug message');
$debugClass->Verbose('Here\'s a "Verbose" debug message');
?>