. */ namespace SP\Log; use SP\Config\Config; use SP\Config\ConfigData; use SP\Core\Language; use SP\Core\Messages\LogMessage; use SP\Core\Session\Session; use SP\Core\Traits\InjectableTrait; use SP\Storage\Database; /** * Clase abstracta ActionLog para la gestión de mensajes de eventos * * @package SP */ abstract class ActionLog extends LogLevel { use InjectableTrait; /** * Constante de nueva línea para descripciones */ const NEWLINE_TXT = PHP_EOL; /** * Constante de nueva línea para descripciones en formato HTML */ const NEWLINE_HTML = '
'; /** * @var string */ protected $logLevel = ''; /** * @var LogMessage */ protected $LogMessage; /** * @var Config */ protected $config; /** * @var ConfigData */ protected $configData; /** * @var Language */ protected $language; /** @var \SP\Core\Session\Session */ protected $session; /** * @var Database */ protected $db; /** * Contructor * * @param LogMessage $LogMessage * @param string $level El nivel del mensaje * @throws \SP\Core\Dic\ContainerException */ public function __construct(LogMessage $LogMessage = null, $level = Log::INFO) { $this->injectDependencies(); $this->LogMessage = $LogMessage ?: new LogMessage(); $this->logLevel = $level; } /** * @param Config $config * @param Language $language * @param Session $session * @param Database $database */ public function inject(Config $config, Language $language, Session $session, Database $database) { $this->config = $config; $this->configData = $config->getConfigData(); $this->language = $language; $this->session = $session; $this->db = $database; } /** * @return string */ public function getLogLevel() { return strtoupper($this->logLevel); } /** * @param string $logLevel */ public function setLogLevel($logLevel) { $this->logLevel = $logLevel; } /** * @return LogMessage */ public function getLogMessage() { return $this->LogMessage; } /** * @param LogMessage $LogMessage */ public function setLogMessage(LogMessage $LogMessage) { $this->LogMessage = $LogMessage; } }