log4php не будет работать должным образом

StackOverflow https://stackoverflow.com/questions/3964944

  •  09-10-2019
  •  | 
  •  

Вопрос

Таким образом, я недавно обнаружил, что пакет Log4 * был доступен для PHP и увидев это с нетерпением скачал последний из веб-сайта log4php и следовал инструкциям по установке. Инструкции указывают на то, что нужно загрузить пакет TAR, UNTRAR, и поместить следующий каталог на место по выбору: log4php / src / main / php

Поэтому я скопировал содержание log4php/src/main/php в мой lib dir под lib / log4php.

В моем скрипте, по мере необходимости, я требовал класса «logger.php» и указал файл свойств для управления моими придателями. Файл свойств, log4php.properties, расположен на моей файловой системе на "/home1/ioforgec/ward/devlab/pnotes/config/log4php.properties".

Вот контент Logfile:

#
# Example Logger
#
log4php.appender.EA1 = LoggerAppenderConsole
log4php.appender.EA1.target = STDOUT
log4php.appender.EA1.layout = LoggerLayoutPattern
log4php.appender.EA1.ConversionPattern = "%m"
log4php.appender.EA1.threshold = FATAL
log4php.exampleLogger = FATAL, EA1

Итак, вот копия моего скрипта, который реализует (более или менее включает функциональность Log4PhPPPHP):

<?php

require_once('/home1/ioforgec/www/devlab/pnotes/lib/log4php/Logger.php');

class LogUtil
{
    public $logger;

    public $properties_file = "/home1/ioforgec/www/devlab/pnotes/config/log4php.properties";

    public static function logExample($msg)
    {
        Logger::configure($properties_file);
        $logger = Logger::getLogger("example");
        $logger->debug("Shouldnt see this print because of config max level FATAL");
        $logger->fatal($msg);
    }
}
?>

Чтобы проверить, что это работает надлежащим образом, следующие скрипты вызывают logutil.php, показанные выше:

#!/usr/bin/php
<?php
require_once("lib/utils/LogUtil.php");
LogUtil::logExample("example message");
?>

Итак, несмотря на настройку примера регистратора для форматирования сообщений как простое сообщение, несмотря на установку уровня регистратора к максимум Fatal, не только в декларации регистратора, но и в команде Threshold, распечатка к консоли смотрит на меня. Как корневой регистратор по умолчанию:

Mon Oct 18 20:30:05 2010,705 [827] DEBUG example - Shouldnt see this print because of config max level FATAL
Mon Oct 18 20:30:05 2010,711 [827] FATAL example - example message

Я вижу оператор печати без простого форматирования, как указано, и я вижу два оператора печати, отладочную печать (которая никогда не должна напечатана из-за настройки фатального на конфигурации регистратора - Fatal намного выше, чем отладка)

Что на земле я делаю не так? Ive попробовал каждую комбинацию установки, которую я могу думать. У кого-нибудь есть предложения?

Редактировать - Обновить - это все еще проблема. Нет прогресса.

Редактировать2 - На самом деле? Никто на этом форуме не пытался использовать этот очень популярный пакет регистрации и его воплощение в качестве модуля PHP?

Я попробовал каждый мыслимый проспект, чтобы попытаться ответить на вопрос, включая список рассылки пользователя Log4Php.

Это было полезно?

Решение

Еще через многие другие часы манипулирования файлом конфигурации я обнаружил небольшой, но критически важный фактоид. Чтобы указать «logger», вы должны назвать его под иерархией «Logger» и его приложениями под «иерархией Appender» и т. Д., Например:

# for the 'console' logger named 'example' we first define the appender:
log4php.appender.consoleAppender = LoggerAppenderConsole
log4php.appender.consoleAppender.target = STDOUT
log4php.appender.consoleAppender.layout = LoggerLayoutSimple

# we then assign the appender and the minimum log level to the logger:
log4php.logger.example = WARN, consoleAppender

Моя ошибка состояла в том, чтобы увидеть имя иерархии корневого регистратора «log4php.rootLogger» и предполагая, что для того, чтобы назначить регистратор, нужно только имени значение «log4php.lognameLogger». К сожалению, это не оправдание, так как был примером, похоронен в документации. Я полагаю, найти его в 9+ часов лучше, чем совсем не :)

Благодаря тем, кто напомнил мне, что, чтобы быть сделана больше отладки работ, я ценил напоминание, чтобы продолжать пытаться

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top