Your IP : 216.73.216.240
<?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);
}
}