Я довольно новичок в рубиновых средах, и я искал хорошую структуру ведения журнала, чтобы использовать ее для рубиновых и рельсовых приложений.Log4r: наследование logger, конфигурация yaml, альтернативы?
В моих предыдущих опытах я успешно использовал log4j и log4p (порт perl) и ожидал того же уровня юзабилити (и зрелости) с log4r.
Однако я должен сказать, что есть ряд вещей, которые не ясно, все в рамках log4r.
1 Logger Наследование
Наследование регистратор не кажется, удалось на всех!
Если я объявляю регистратор с именем «MyApp», а затем попытаться получить имя регистратора «MyApp :: двигатель», то поиск будет заканчиваться NameError.
Я хотел бы ожидать, что структура возвращает корневой регистратор в соответствии со схемой именования и использовать «» MYAPP регистратор.
Q1: Конечно, я могу обойти это и управлять своими именами методом поиска, однако есть ли более чистый способ сделать это без какого-либо дополнительного кодирования?
2 конфигурации YAML
Вторая вещь, которая меня смущает конфигурация YAML. На сайте log4r буквально нет информации об этой системе, doc связывается с пропущенными страницами, поэтому вся информация, которую я могу найти, содержится в каталоге примеров драгоценного камня.
Я был довольно путать с тем, что конфигурация YAML должен содержать раздел pre_config, и что мне нужно определить свои собственные уровни.
Если удалить pre_config secion, или заменить все «пользовательские» уровни от стандартных (отладки, информация, предупредить, со смертельным исходом), пример выбросит следующее сообщение об ошибке:
log4r/yamlconfigurator.rb:68:in `decode_yaml': Log level must be in 0..7 (ArgumentError)
Так кажется, не способ использовать простой файл, где мы объявляем только регистраторы и приставки для фреймворка.
Q2: Я действительно думаю, что я что-то пропустил, и это должен быть способ обеспечить простой файл-хранилище ямлов. Есть ли у вас примеры такого использования?
3 Переменные подстановки в файле XML
Q3: Система конфигурации YAML, кажется, обеспечивает такую возможность, однако я не смог найти аналогичную функцию с файлами XML. Есть идеи ?
4 Альтернативы?
Должен сказать, что я очень разочарован уровнем детализации и зрелостью log4r по сравнению с log4j и другими портами log4j.
Я столкнулся с этой каркасной платформой с твердым фоном API-интерфейсов регистрации на других языках и обнаружил, что я оборачиваюсь во всех видах, чтобы сделать «основные вещи» запущенными в «реальном мире».
Под этим я подразумеваю сложное приложение, состоящее из нескольких драгоценных камней, консольных/скриптовых приложений и веб-интерфейса рельсов, где конфигурация должна быть согласована и где мы интенсивно используем пространства имен и наследование.
Я выполнил несколько поисков, чтобы найти что-то более подходящее или зрелое, но не нашел ничего подобного.
Q4: Ребята вы знаете какие-либо (серьезные) альтернативы структуре log4r, которые можно использовать в приложении корпоративного класса?
Спасибо, что прочел все это!
Я бы очень признателен за любые указатели,
Уважением,
Привет, спасибо за ваш ответ, однако этот пример не работает должным образом в нашей среде. Я получаю «decode_yaml»: undefined method 'each 'for nil: NilClass (NoMethodError)', когда анализируется файл yaml. Анализ файла или хэша дает ту же ошибку ... Используете ли вы версию 1.147 log4r? – devlearn
Я использую 1.0.6 в производстве. Я попробую его немного позже и отправлю рабочий пример. –
Я вставил пример прямо из irb. –