Files
canary/renamed/classes/logger.php
Joey Kimsey b6de9d159b rename p1
2025-02-03 12:29:20 -05:00

124 lines
4.2 KiB
PHP

<?php
/**
* logger.php
*
* @version 1.0.7
* @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com/libraries/Canary
* @license https://opensource.org/licenses/MIT [MIT LICENSE]
*/
namespace TheTempusProject\Canary\Classes;
class Logger {
public $file;
public $logDirectory;
public $logFilePath;
public function __construct() {
$this->setupLogFile();
$this->file = fopen( $this->logFilePath, 'a' );
fwrite( $this->file, '===================------++++++++++------===================' . PHP_EOL );
}
public function setupLogFile() {
$this->logDirectory = rtrim( CANARY_DEBUG_DIRECTORY, DIRECTORY_SEPARATOR );
if ( ! is_dir( $this->logDirectory ) ) {
mkdir( $this->logDirectory, 0777, true );
}
$currentFile = date('m-d-Y') . '.log';
$this->logFilePath = $this->logDirectory . DIRECTORY_SEPARATOR . $currentFile;
if ( ! file_exists( $this->logFilePath ) ) {
touch( $this->logFilePath );
chmod( $this->logFilePath, 0777 );
}
}
public function __destruct() {
fwrite( $this->file, '============================================================' . PHP_EOL );
fclose( $this->file );
}
public function addLog( $type = 'log', $log = '' ) {
switch ( CANARY_DEBUG_TO_FILE_LEVEL ) {
case CANARY_DEBUG_LEVEL_ERROR:
$acceptableLoggingLevels = [
CANARY_DEBUG_LEVEL_ERROR,
];
if (! in_array( $type, $acceptableLoggingLevels )) {
return;
}
break;
case CANARY_DEBUG_LEVEL_WARN:
$acceptableLoggingLevels = [
CANARY_DEBUG_LEVEL_ERROR,
CANARY_DEBUG_LEVEL_WARN,
];
if (! in_array( $type, $acceptableLoggingLevels )) {
return;
}
break;
case CANARY_DEBUG_LEVEL_INFO:
$acceptableLoggingLevels = [
CANARY_DEBUG_LEVEL_ERROR,
CANARY_DEBUG_LEVEL_WARN,
CANARY_DEBUG_LEVEL_INFO,
];
if (! in_array( $type, $acceptableLoggingLevels )) {
return;
}
break;
case CANARY_DEBUG_LEVEL_LOG:
$acceptableLoggingLevels = [
CANARY_DEBUG_LEVEL_ERROR,
CANARY_DEBUG_LEVEL_WARN,
CANARY_DEBUG_LEVEL_INFO,
CANARY_DEBUG_LEVEL_LOG,
];
if (! in_array( $type, $acceptableLoggingLevels )) {
return;
}
break;
case CANARY_DEBUG_LEVEL_DEBUG:
$acceptableLoggingLevels = [
CANARY_DEBUG_LEVEL_ERROR,
CANARY_DEBUG_LEVEL_WARN,
CANARY_DEBUG_LEVEL_INFO,
CANARY_DEBUG_LEVEL_LOG,
CANARY_DEBUG_LEVEL_DEBUG,
];
if (! in_array( $type, $acceptableLoggingLevels )) {
return;
}
break;
default:
return;
}
$formattedMessage = $this->timestamp() . $this->typestamp( $type ) . $log . PHP_EOL;
fwrite( $this->file, $formattedMessage );
}
private function timestamp() {
$dateString = self::getReadableDate( time() );
return '['.$dateString.'] - ';
}
private function typestamp( $type ) {
$dateString = self::getReadableDate( time() );
return '[' . strtoupper( $type ) . '] - ';
}
public static function getReadableDate( $timestamp, $with_timezone = false ) {
if ( $with_timezone ) {
$date = new \DateTime();
$date->setTimestamp( $timestamp );
$timezone = new \DateTimeZone( self::getTimezone() );
$date->setTimezone( $timezone );
$formattedDate = $date->format('Y-m-d H:i:s');
return $formattedDate;
}
return date( 'Y-m-d H:i:s', $timestamp );
}
}