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