perl: использование пользовательского приложения с log4perl

#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. Спасибо за разъяснения. Я думал, это будет просто. 🙁