Я хотел бы реализовать механизм журналирования для файла в PHP:
- путь к файлу журнала будет находиться в файле конфигурации config.php
- в нескольких классах я хотел бы записать некоторые события в файл журнала
Например:
    Class A {
        public function f_A {
            log_to_file($message);
        }
    }
    Class B {
        public function f_B {
            log_to_file($message);
        }
    }
Буду очень благодарен за любые советы. Я хотел бы реализовать несколько простых и элегантных решений.
Я думал об этом (спасибо за ваши ответы), и я думаю, что я это сделаю (может быть, есть некоторые ошибки, я писал это с нуля):
interface Logger {
    public function log_message($message);
}
class LoggerFile implements Logger {
    private $log_file;
public function __construct($log_file) {
    $this->log_file = $log_file;
}
public function log_message($message) {
        if (is_string($message)) {
            file_put_contents($this->log_file, date("Y-m-d H:i:s")." ".$message."\n", FILE_APPEND);
        }
    }
}
//maybe in the future logging into database
class LoggerDb implements Logger {
    private $db;
    public function __construct($db) {
        //some code
    }
public function log_message($message) {
        //some code
    }
}
Class A {
    private $logger;
public function __construct(Logger $l) {
        $this->logger = $l;
    }
public function f_A {
    $this->logger->log_message($message);
}
}
Class B {
    private $logger;
public function __construct(Logger $l) {
        $this->logger = $l;
    }
public function f_B {
    $this->logger->log_message($message);
}
}
//usage:
//in config.php:
define("CONFIG_LOG_FILE", "log/app_log.log");
//in the index.php or some other files
$logger = new LoggerFile(CONFIG_LOG_FILE);
$instance_a = new A($logger);
$instance_b = new B($logger);
