Я относительно новый программист PHP, мой опыт в Java. Мой вопрос связан с попытками записи в журнал вызовов функций и выходов с использованием Log4PHP. Я следую свободному шаблону MVC, где у меня есть PHP-страницы, которые отображают представление, PHP-скрипты для работы в качестве контроллеров и PHP-классы, представляющие модель.
Вот что происходит: у меня есть форма, которая отправляется контроллеру PHP, который затем создает экземпляр класса PHP. Вновь созданный объект выполняет вставку в MySQL, возвращая новый идентификатор автоинкремента. Затем управление переходит обратно к контроллеру, который пересылает в другое представление PHP, используя header-> location. Наконец, новое представление PHP делает выборку по вновь созданному идентификатору.
Проблема состоит в том, что во время этого процесса выполнения ТОЛЬКО поиск регистрируется Log4PHP; ВСТАВКА не является. Вот некоторые фрагменты:
<appender name="myConsoleAppender" class="LoggerAppenderConsole" />
<appender name="myLoggerAppenderDailyFile" class="LoggerAppenderDailyFile">
<layout class="LoggerLayoutPattern">
<param name="conversionPattern" value="%d{Y-m-d H:i:s} [%p] %c: %m (at %F line %L)%n" />
</layout>
<param name="file" value="file-%s.log" />
<param name="datePattern" value="Y-m-d" />
</appender>
<logger name="merchant">
<appender_ref ref="myLoggerAppenderDailyFile" />
</logger>
<root>
<level value="DEBUG" />
<appender_ref ref="myConsoleAppender" />
</root>
</configuration>
Конструктор:
public function __construct() {
.
.
Logger::configure('config.xml');
$this->log = Logger::getLogger(__CLASS__);
}
Два метода:
public function insertMerchant() {
$this->log->debug("Inserting new Merchant");
.
.
$this->log->debug("Merchant Inserted; ID = $merchantId");
}
public function findMerchantByUserId($userId) {
$this->log->debug("Finding Merchant with userId = $userId");
.
.
$this->log->debug("Merchant found with userId = $userId");
}
Как я уже говорил, в файл регистрируется ТОЛЬКО последний вызов функции findMerchantByUserId ($ userid). Вставка никогда не регистрируется,
Заранее благодарю за любую помощь.
Задача ещё не решена.
Других решений пока нет …