التسجيل باستخدام SL4J، وتسجيل Jakarta Commons، وlog4j لمكتبات الطرف الثالث، والتعليمات البرمجية الخاصة بي

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

سؤال

لدي بعض الأسئلة حول التسجيل، وبشكل أكثر تحديدًا حول إعداده والتأكد من أنه يعمل.

المشروع الذي أقوم به سوف يستخدم بوابة صغيرة, ربيع و بيات شتوى.أعلم أن Wicket وHbernate يستخدمان واجهة تسجيل بسيطة لـ Java (SL4J) وأن الربيع يستخدم مكون التسجيل من Apache Commons.

هل سيتعايشون بسعادة؟اعتقدت أنني سوف تستخدم log4j مع كل من SL4J ومكون التسجيل من Apache commons، هل تعتقد أن هذه فكرة جيدة؟

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

بالنسبة لفصل الربيع، أعتقد أنني بحاجة إلى نوع من ملفات التكوين لمكون تسجيل Apache Commons وكذلك حيث أقوم بتوجيهه لاستخدام log4j؟

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

وسؤالي الأخير.في المشروع الذي أبدأه، هل تنصحني باستخدام SL4J لأغراض التسجيل الخاصة بي؟(اعتقدت أنني سأستخدم log4j مباشرة، ولكن كان ذلك قبل أن أتعلم المزيد عن التسجيل ويبدو أن الكثير من المكتبات المحترمة تختار مسار الجسر/الواجهة لتلبية احتياجات التسجيل الخاصة بها.وإذا كان يمنحنا المرونة دون تكلفة إضافية، فلا يوجد سبب لعدم القيام بذلك بهذه الطريقة.)

إنني أتطلع إلى سماع المزيد منك حول كيفية قيامك بالتسجيل.إنه مجال جديد بالنسبة لي وأتطلع إلى تحسين نفسي فيه.

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

المحلول

حسنًا، SLF4J مجرد واجهة، مثل تسجيل المشاع، مما يعني أنهم ما زالوا بحاجة إلى شيء آخر للعمل.إنها تسمح لمؤلفي المكتبات بعدم إجبار المستخدمين على الحصول على مكتبة تسجيل وتكوينات متعددة.Log4j وlogback عبارة عن مكتبات تسجيل عادية.

يرى هنا لمزيد من المعلومات.

SLF4J لديه جسر قطع الأشجار المشترك التي يمكنك استخدامها لاستبدال مكتبة تسجيل المشاعات.أعتقد أن المخطط هناك يشرح الوضع جيدًا.

الآن، تحتاج فقط إلى استخدام slf4j-logj12.jar للحصول على تسجيل مشترك واستخدام slf4j log4j (أو أي شيء آخر اخترته؛راجع للشغل، لا يحتاج تسجيل الدخول إلى مكتبة إضافية لاستخدامها مع slf4j) كمحرك دعم.

وبالتالي سيكون لديك التطبيق

  • jcl104-over-slf4j.jar (لربط تسجيل الدخول المشترك في جاكرتا إلى slf4j)
  • slf4j.jar (للإسبات وللآخرين لاستخدام slf4j)
  • slf4j-logj12.jar (لكي يستخدم slf4j log4j كواجهة خلفية)
  • log4j.jar (ليستخدمه تطبيقك.سيتم أيضًا تنفيذ جميع التكوينات هنا)

نصائح أخرى

إليك كيفية إعادة توجيه كل شيء إلى SLF4J:

  • يزيل commons-logging.jar من مسار الفصل الدراسي الخاص بك.إذا كنت تستخدم Maven وتواجه مشكلة في التخلص من التسجيل المشترك، فراجع هذا.

  • يضع jcl-over-slf4j.jar في مسار الفصل الخاص بك (يأتي في توزيع SLF4J).هذا بديل مباشر يحاكي فئات JCL، ولكنه يستدعي SLF4J داخليًا.سيهتم هذا بـ Spring وأي إطار عمل آخر يستخدم JCL.

قم بتوصيل SLF4J بالواجهة الخلفية المفضلة لديك (Log4J، Logback...) عن طريق وضع slf4j-xxx.jar في مسار الفصل.قم بتكوين الواجهة الخلفية لتسجيل جميع الفئات في ملف واحد، وبذلك تكون قد انتهيت.

أما بالنسبة لاستخدام SLF4J في تطبيقك، فهو ليس ضروريًا تمامًا.تم تصميم المكتبات مثل JCL وSLF4J في الأصل للأشخاص الذين يكتبون مكتبات ولا يريدون تقييد عملائهم في إطار عمل تسجيل معين.

ملاحظة:بالمناسبة، JCL = تسجيل جاكرتا كومنز

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