summaryrefslogtreecommitdiff
path: root/classes/logger
diff options
context:
space:
mode:
Diffstat (limited to 'classes/logger')
-rw-r--r--classes/logger/adapter.php4
-rwxr-xr-xclasses/logger/sql.php12
-rw-r--r--classes/logger/stdout.php6
-rw-r--r--classes/logger/syslog.php6
4 files changed, 17 insertions, 11 deletions
diff --git a/classes/logger/adapter.php b/classes/logger/adapter.php
new file mode 100644
index 000000000..79f641441
--- /dev/null
+++ b/classes/logger/adapter.php
@@ -0,0 +1,4 @@
+<?php
+interface Logger_Adapter {
+ function log_error(int $errno, string $errstr, string $file, int $line, $context);
+} \ No newline at end of file
diff --git a/classes/logger/sql.php b/classes/logger/sql.php
index ad7fdecb2..d21934aa6 100755
--- a/classes/logger/sql.php
+++ b/classes/logger/sql.php
@@ -1,17 +1,15 @@
<?php
-class Logger_SQL {
+class Logger_SQL implements Logger_Adapter {
private $pdo;
- function log_error($errno, $errstr, $file, $line, $context) {
+ function log_error(int $errno, string $errstr, string $file, int $line, $context) {
// separate PDO connection object is used for logging
if (!$this->pdo) $this->pdo = Db::instance()->pdo_connect();
if ($this->pdo && get_schema_version() > 117) {
- $owner_uid = $_SESSION["uid"] ?? null;
-
// limit context length, DOMDocument dumps entire XML in here sometimes, which may be huge
$context = mb_substr($context, 0, 8192);
@@ -34,10 +32,14 @@ class Logger_SQL {
$errstr = UConverter::transcode($errstr, 'UTF-8', 'UTF-8');
$context = UConverter::transcode($context, 'UTF-8', 'UTF-8');
+ // can't use $_SESSION["uid"] ?? null because what if its, for example, false? or zero?
+ // this would cause a PDOException on insert below
+ $owner_uid = !empty($_SESSION["uid"]) ? $_SESSION["uid"] : null;
+
$sth = $this->pdo->prepare("INSERT INTO ttrss_error_log
(errno, errstr, filename, lineno, context, owner_uid, created_at) VALUES
(?, ?, ?, ?, ?, ?, NOW())");
- $sth->execute([$errno, $errstr, $file, $line, $context, $owner_uid]);
+ $sth->execute([$errno, $errstr, $file, (int)$line, $context, $owner_uid]);
return $sth->rowCount();
}
diff --git a/classes/logger/stdout.php b/classes/logger/stdout.php
index 4dac2e598..e906853ce 100644
--- a/classes/logger/stdout.php
+++ b/classes/logger/stdout.php
@@ -1,7 +1,7 @@
<?php
-class Logger_Stdout {
+class Logger_Stdout implements Logger_Adapter {
- function log_error($errno, $errstr, $file, $line, $context) {
+ function log_error(int $errno, string $errstr, string $file, int $line, $context) {
switch ($errno) {
case E_ERROR:
@@ -21,7 +21,7 @@ class Logger_Stdout {
$priority = LOG_INFO;
}
- $errname = Logger::$errornames[$errno] . " ($errno)";
+ $errname = Logger::ERROR_NAMES[$errno] . " ($errno)";
print "[EEE] $priority $errname ($file:$line) $errstr\n";
diff --git a/classes/logger/syslog.php b/classes/logger/syslog.php
index f1e151548..3ad9858f3 100644
--- a/classes/logger/syslog.php
+++ b/classes/logger/syslog.php
@@ -1,7 +1,7 @@
<?php
-class Logger_Syslog {
+class Logger_Syslog implements Logger_Adapter {
- function log_error($errno, $errstr, $file, $line, $context) {
+ function log_error(int $errno, string $errstr, string $file, int $line, $context) {
switch ($errno) {
case E_ERROR:
@@ -21,7 +21,7 @@ class Logger_Syslog {
$priority = LOG_INFO;
}
- $errname = Logger::$errornames[$errno] . " ($errno)";
+ $errname = Logger::ERROR_NAMES[$errno] . " ($errno)";
syslog($priority, "[tt-rss] $errname ($file:$line) $errstr");