ماذا علي أن أفعل مع العرف Log4j تبعيات appender

StackOverflow https://stackoverflow.com/questions/1815222

  •  06-07-2019
  •  | 
  •  

سؤال

ولقد كتبت appender log4j المخصصة التي بإنشاء مستند المؤسسة العامة الجديدة لكل إدخال سجل وأواجه مشاكل توظيفها لجبوس.

المصدر للعرض على جيثب ولكن المشكلة الحقيقية هي تحاول استخدام appender من جبوس.

وبت relevent عن من جبوس-log4j.xml نظرة مثل هذا:

<appender name="SOLR" class="com.stuartgrimshaw.solrIndexAppender.SolrIndexAppender" />

<root>
   <priority value="${jboss.server.log.threshold}"/>
   <appender-ref ref="CONSOLE"/>
   <appender-ref ref="FILE"/>
   <appender-ref ref="SOLR"/>
</root>

والتبعيات عن المؤسسة العامة كل ما هو متاح في ملف .war هذا ما الموردة، ولكن انا التخمين أنه عندما يتم initialised وappender جدا في وقت مبكر من عملية التمهيد، لم يتم نشر هذا التطبيق حتى الآن، والذي هو السبب في أنني رؤية هذا الخطأ في السجل:

2009-11-29 10:40:57,715 ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] (main) Error installing to Create: name=jboss.system:service=Logging,type=Log4jService state=Configured mode=Manual requiredState=Create
java.lang.NoClassDefFoundError: org/apache/solr/client/solrj/SolrServerException

هل هناك أي طريقة يمكن أن تؤخر التهيئة حتى التطبيق المؤسسة العامة وقد تم نشر، أو هل هناك طريقة لنشر التطبيق المؤسسة العامة لذلك فمن المكتبات واضحة إلى جبوس في حين أنه بالتمهيد؟

هل كانت مفيدة؟

المحلول

وأعتقد أنك إما أن نشر يبس المؤسسة العامة في خادم / [جبوس التكوين] / ليب (في جبوس 4 وهذا هو، قد تكون هي نفسها في الإصدارات الأحدث)، ثم كانت متوفرة في وقت التمهيد.

وأو لا تستخدم التكوين log4j جبوس وتحديد log4j.xml الخاصة بك في WAR (إما في JAR في ليب أو في الطبقات). سيتم تحميلها من قبل classloader التطبيق عند نشرها.

نصائح أخرى

وكما كنت قد اكتشفت، وكنت قد لوضع JAR الخاص بك إلى دليل lib التكوين جبوس من أجل الرجوع إلى أنواعه في jboss-log4j.xml، ولكن هذا هو عموما ليست ممارسة جيدة.

وثمة بديل straightward جدا هو استدعاء API log4j برمجيا من داخل التطبيق الخاص بك. إذا كان لديك WAR، ثم تحديد ServetContextListener (أو شيئا من هذا القبيل) الذي يتم استدعاؤه عندما تنشر في الحرب، والتي تعلق appender الخاص بك. وبالمثل، عندما غير موزعين في الميدان، فإنه يفصل appender.

وانظر جواب هذا السؤال سابقة عن كيفية الحصول على بدأت تفعل هذا.

وأنا على التخمين بأن هذا هو لإدارة ملفات السجل الخاص بك وجعلها أسهل للبحث، على غرار Splunk ؟؟؟؟ ومع ذلك، وهذا يبدو وكأنه بطريقة غريبة إلى حد ما للقيام بذلك .. نوع من "نظرة، وأنا يمكن أن تجعل كلب يمشي على انها رجليه الخلفيتين" نوع من الشيء ... بارد، ولكن لماذا تريد؟

وأعتقد أن نهج أكثر قوة أبسط من ذلك بكثير هو أ) الاستيلاء على Splunk الطبعة الحرة! ب) تكون هناك عملية منفصلة التي تستهلك ملفات السجل الخاص بك من القرص وإرسالها إلى المؤسسة العامة باستخدام Solr4J.

وأعتقد تتطلب المؤسسة العامة، فقط أن تفعل تسجيل يضيف مستوى كبير من التعقيد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top