Я довольно плохо знаком с средами ruby, и я искал хорошую среду для ведения журналов, чтобы использовать ее в моих приложениях ruby и rails.
В своем предыдущем опыте я успешно использовал log4j и log4p (порт perl) и ожидал того же уровня удобства использования (и зрелости) с log4r.
Однако я должен сказать, что есть ряд вещей, которые не совсем понятны в каркасе log4r.
1 Logger Inheritance
Похоже, что наследование регистратора вообще не управляется!
Если я объявлю регистратор с именем «myapp», а затем попытаюсь получить имя регистратора «myapp :: engine», поиск закончится с помощью NameError.
Я ожидаю, что фреймворк возвращает корневой регистратор в соответствии со схемой именования и использует регистратор 'myapp'.
Q1 : Конечно, я могу обойти это и самостоятельно управлять именами с помощью метода поиска, однако есть ли более чистый способ сделать это без какого-либо дополнительного кодирования?
2 YAML конфигурация
Второе, что меня смущает, это конфигурация yaml. На сайте log4r буквально нет информации об этой системе, документ ссылается на отсутствующие страницы, поэтому вся информация, которую я могу найти, содержится в каталоге примеров гема.
Я был довольно смущен тем фактом, что конфигурация yaml должна содержать раздел pre_config, и что мне нужно определить свои собственные уровни.
Если я удаляю раздел pre_config или заменяю все «пользовательские» уровни стандартными (отладка, информация, предупреждение, фатальный), в примере будет выдана следующая ошибка:
log4r/yamlconfigurator.rb:68:in `decode_yaml': Log level must be in 0..7 (ArgumentError)
Так что, похоже, нет способа использовать простой файл, в котором мы объявляем только логгеры и приложения для каркаса.
Q2 : Мне действительно кажется, что я что-то упустил, и это должен быть способ предоставления простого файла конфигурации yaml. У вас есть примеры такого использования?
3 Подстановка переменных в XML-файл
Q3 : Система конфигурации Yaml, похоже, предоставляет такую возможность, однако мне не удалось найти аналогичную функцию с файлами XML. Есть идеи?
4 варианта?
Должен сказать, что я очень разочарован уровнем возможностей и зрелостью log4r по сравнению с log4j и другими портами log4j.
Я сталкиваюсь с этой средой с глубоким опытом API-интерфейсов ведения журналов на других языках и обнаруживаю, что работаю во всех видах, просто чтобы «базовые вещи» работали в «реальном приложении».
Под этим я подразумеваю сложное приложение, состоящее из нескольких гемов, консольных / скриптовых приложений и веб-интерфейса rails, где конфигурация должна быть взаимной и где мы интенсивно используем пространства имен и наследование.
Я провел несколько поисков, чтобы найти что-то более подходящее или зрелое, но не нашел ничего похожего.
Q4 : Ребята, вы знаете какие-нибудь (серьезные) альтернативы каркасу log4r, которые можно было бы использовать в приложении корпоративного класса?
Спасибо, что прочитали все это!
Я бы очень признателен за любые указатели,
С уважением,