#perl
#perl
Вопрос:
У меня есть пользовательское приложение log4j, которое записывает сообщения журнала в очередь JMS. Как я могу использовать это приложение в моем конфигурационном файле log4perl. Кто-нибудь может прислать мне пример кода, пожалуйста.
Спасибо за вашу помощь.
Ответ №1:
Хотя Log4perl основан на log4j и может использовать синтаксис log4j в своих конфигурационных файлах, это отдельная реализация, написанная на Perl. Он не может использовать приложения log4j. Вам пришлось бы написать класс Perl с таким же поведением. Как только вы это сделаете, вы можете использовать Log::Log4perl::JavaMap, чтобы указать программе чтения конфигурации Log4perl сопоставить Java-имя вашего приложения с соответствующим классом Perl.
Комментарии:
1. Спасибо за ваш ответ. Я новичок в perl. Как написать класс perl, эквивалентный моему приложению JMS? Сложно ли это? Мое приложение JMS от третьей стороны, и у меня есть файл jar. Могу ли я самостоятельно реализовать приложение JMS в этом новом классе perl?
2. Я могу использовать следующее приложение. <имя приложения =»FileAppndr1″ class=»org.apache.log4j.FileAppender»> <класс макета=»Log::Log4perl::Layout::PatternLayout»> <имя параметра=»ConversionPattern» значение=»%d %4r [%t] %-5p %c %t — %m%n»/> </layout> <имя параметра=»File» значение =»D:/test.log «/> <имя параметра=»Добавить» значение =»true»/> </appender> Но почему не мое собственное приложение?
3. Вы можете использовать,
org.apache.log4j.FileAppender
потому что Log::Log4perl::JavaMap сопоставляет это с Log::Dispatch::File . Но это работает только для приложений, где кто-то написал соответствующее приложение на Perl (и JavaMap знает об этом).4. Написать приложение к очереди JMS будет непросто, иначе кто-нибудь бы это уже сделал. Сложной частью будет запись в очередь JMS из Perl. Как только это будет сделано, связать его с Log4perl должно быть довольно просто.
5. Спасибо за разъяснения. Я думал, это будет просто. 🙁