| 
<?phpdeclare(strict_types=1);
 
 require_once 'autoloader.php';
 require_once 'TestClass.php';
 
 use Psr\Log\LogLevel;
 use Psr\Log\NullLogger;
 use SKien\XLogger\ChromePHPLogger;
 use SKien\XLogger\FileLogger;
 use SKien\XLogger\FirePHPLogger;
 use SKien\XLogger\XLogger;
 use SKien\XLogger\XMLLogger;
 
 $strMessage = '';
 $strLink = '';
 $logger = new NullLogger();
 $strLogger = isset($_GET['logger']) ? strtolower($_GET['logger']) : 'log';
 $strLevel = isset($_GET['level']) ? strtolower($_GET['level']) : 'dev';
 $level = LogLevel::DEBUG;
 switch ($strLevel) {
 case 'deploy':
 $level = LogLevel::WARNING;
 $strMessage = '<br/>Log-Level for Deployment Environment';
 break;
 case 'test':
 $level = LogLevel::INFO;
 $strMessage = '<br/>Log-Level for Test Environment';
 break;
 case 'dev':
 $level = LogLevel::DEBUG;
 $strMessage = '<br/>Log-Level for Development Environment';
 break;
 }
 switch ($strLogger) {
 case 'log':
 case 'csv':
 case 'txt':
 $logger = new FileLogger($level);
 $logger->setUser('S./Kien');
 $logger->setFullpath('test_{date}_{name}.' . $strLogger);
 $logger->setOptions(XLogger::LOG_BT | XLogger::LOG_USER);
 $strMessage = 'Logger Output written to ' . $logger->getFilename() . $strMessage;
 break;
 case 'xml':
 $logger = new XMLLogger($level);
 $logger->setFullpath('test_{month}.xml');
 $logger->setXSLFile('XMLLogger.xsl');
 $logger->setOptions(XLogger::LOG_BT | XLogger::LOG_USER | XLogger::LOG_UA);
 $logger->setUser('SKien');
 $strMessage = 'Logger Output written to ' . $logger->getFilename() . $strMessage;
 $strLink = '<a target="_blank" href="' . $logger->getFilename() . '">View Log</a>';
 break;
 case 'firefox':
 $logger = new FirePHPLogger($level);
 $strMessage = 'Logger Output sent to FirePHP Console' . $strMessage;
 break;
 case 'chrome':
 $logger = new ChromePHPLogger($level);
 $strMessage = 'Logger Output sent to Chrome Console' . $strMessage;
 break;
 }
 
 $logger->error('bad conditions :-(', ['more' => 'just more Information']);
 $logger->info('some informations');
 $logger->alert('the bell is ringing...' . PHP_EOL . '... its 5 to 12!');
 $logger->warning('something gone wrong ;-)');
 
 $oTest = new TestClass();
 
 // nothing will be logged since setLogger() was not called so far... but dont causes any error!');
 $oTest->doSomething();
 
 $oTest->setLogger($logger);
 $oTest->doSomething();
 $oTest->causeException();
 ?>
 <!DOCTYPE html>
 <html>
 <body>
 <h1>Logger - Example</h1>
 <p><?php echo $strMessage;?></p>
 <p><?php echo $strLink;?></p>
 <form action="XLogTest.php" method="get">
 <label for="logger">Output to:</label>
 <select name="logger" id ="logger">
 <option <?php echo $strLogger == 'log' ? 'selected' : ''; ?> value="log">LOG File</option>
 <option <?php echo $strLogger == 'csv' ? 'selected' : ''; ?> value="csv">CSV File</option>
 <option <?php echo $strLogger == 'txt' ? 'selected' : ''; ?> value="txt">TXT File</option>
 <option <?php echo $strLogger == 'xml' ? 'selected' : ''; ?> value="xml">XML File</option>
 <option <?php echo $strLogger == 'firefox' ? 'selected' : ''; ?> value="firefox">FirePHP-Console</option>
 <option <?php echo $strLogger == 'chrome' ? 'selected' : ''; ?> value="chrome">Chrome-Console</option>
 <option <?php echo $strLogger == 'null' ? 'selected' : ''; ?> value="null">Null-Logger</option>
 </select><br/>
 <label for="level">Environment:</label>
 <select id="level" name="level">
 <option <?php echo $strLevel == 'dev' ? 'selected' : ''; ?> value="dev">Development</option>
 <option <?php echo $strLevel == 'test' ? 'selected' : ''; ?> value="test">Test</option>
 <option <?php echo $strLevel == 'deploy' ? 'selected' : ''; ?> value="deploy">Deploy</option>
 </select><br/>
 <button type="submit">Reload</button>
 </form>
 </body>
 </html>
 
 |