Your IP : 216.73.216.240


Current Path : /home/juvelize/saulnois/tmp/install_695d2cf0b4957/src/
Upload File :
Current File : /home/juvelize/saulnois/tmp/install_695d2cf0b4957/src/TLog.php

<?php
/*
* @package		Tech Fry Library
* @license		https://www.gnu.org/licenses/gpl-3.0.en.html
*/

namespace TechFry\Library;

defined('_JEXEC') or die;

use Joomla\CMS\Factory;
use Joomla\CMS\Log\Log;

// Class for adding logs in log file and database 'logs' column
class TLog
{
    public $table_name;
    
    public function __construct($table_name = '')
    {
        if ($table_name)
        {
            $this->table_name = $table_name;
        }
    }

    // Logging in Database
    public function add_db($message, $record_id, $type = 'info')
    {
        // $type - info, error, success
        
        // Column name should be logs
        $db = new TDb($this->table_name);
        $current_log = $db->get_single(array('id' => $record_id, 'select' => 'logs'));

        $log_arr = ($current_log) ? json_decode($current_log, true) : array();

        // Maximum log entries - 199
        if (\count($log_arr) > 199)
        {
            array_pop($log_arr);
        }

        $date = Factory::getDate()->toSql();

        array_unshift($log_arr, array($type, $date, $message));
        
        $obj = new \stdClass();
        $obj->id = $record_id;
        $obj->logs = json_encode($log_arr);

        $db = new TDb($this->table_name);
        $db->insert_update($obj);
    }

    public function add_db_info($message, $record_id)
    {
        $this->add_db($message, $record_id, 'info');
    }

    public function add_db_error($message, $record_id)
    {
        $this->add_db($message, $record_id, 'error');
    }

    public function add_db_success($message, $record_id)
    {
        $this->add_db($message, $record_id, 'success');
    }

    // Log Files
    public function add_entry($message, $log_file = '')
    {
        if (empty($log_file))
        {
            $log_file = Factory::getApplication()->input->get('option', 'techfry') . '.php';
        }
        else
        {
            $log_file .= '.php';
        }

        Log::addLogger(array('text_file' => $log_file, 'text_entry_format' => '{DATE} {TIME} {PRIORITY} {MESSAGE}'));

        Log::add($message, Log::INFO);
    }

    // 
    public function add_error($message, $log_file = '')
    {
        if (empty($log_file))
        {
            $log_file = Factory::getApplication()->input->get('option', 'techfry') . '.php';
        }
        else
        {
            $log_file .= '.php';
        }

        Log::addLogger(array('text_file' => $log_file, 'text_entry_format' => '{DATE} {TIME} {PRIORITY} {MESSAGE}'));

        Log::add($message, Log::ERROR);
    }
}