log4j বনাম লগব্যাক [বন্ধ]


152

আমরা স্বনির্মিত মোড়কের পিছনে লগ 4 জে ব্যবহার করছি। আমরা এখন এর আরও অনেক বৈশিষ্ট্য ব্যবহার করার পরিকল্পনা করি।

আমরা লগব্যাক আপডেট করা উচিত?

(আমি বলতে চাই ফ্রেমওয়ার্কটি এসএলএফ 4 জের মতো মুখোমুখি নয়)


1
লগব্যাক জাকার্তা কমন্স লগিংয়ের সাথে খুব মিল বলে - মূল পার্থক্যগুলি কী?
ম্যাট বি

12
এসএলএফ 4 জে (যা সম্মুখ দিকে) কমন্স.লগিংয়ের মতো বলে মনে হচ্ছে। মূল পার্থক্য হ'ল এসএলএফ 4 জে স্ট্যাটিক বাইন্ডিং ব্যবহার করছে যখন কমন্স.লগিং কিছু রেজোলিউশন কৌশল ব্যবহার করছে। লগব্যাক ("নেটিভ" (অর্থাত্ মুখোমুখি কোনও অতিরিক্ত মোড়কের স্তর নেই) বাস্তবায়ন) LOG4J এর সাথে তুলনীয় তবে সমৃদ্ধ এপিআই রয়েছে।
হুসি

উত্তর:


190

লগব্যাক স্থানীয়ভাবে SLF4J এপিআই প্রয়োগ করে। এর অর্থ হ'ল আপনি লগব্যাক ব্যবহার করছেন, আপনি আসলে এসএলএফ 4 জ এপিআই ব্যবহার করছেন। আপনি তাত্ত্বিকভাবে সরাসরি লগিংয়ের জন্য লগব্যাক এপিআইয়ের ইন্টার্নালগুলি ব্যবহার করতে পারেন, তবে এটি অত্যন্ত নিরুৎসাহিত। লগারে সমস্ত লগব্যাক ডকুমেন্টেশন এবং উদাহরণগুলি এসএলএফ 4 জে এপিআইয়ের শর্তে লিখিত হয়।

সুতরাং লগব্যাক ব্যবহার করে, আপনি আসলে এসএলএফ 4 জে ব্যবহার করছেন এবং কোনও কারণে যদি আপনি লগ 4 জে ফিরে যেতে চান, তবে আপনি কেবল ক্লাসের পথে slf4j-log4j12.jar ফেলে রেখে কয়েক মিনিটের মধ্যে এটি করতে পারেন।

লগব্যাক থেকে লগ ৪ জে স্থানান্তরিত করার সময়, নির্দিষ্ট অংশগুলিকে লগব্যাক করুন, বিশেষত লগব্যাক.এক্সএমএল কনফিগারেশন ফাইলের মধ্যে থাকাগুলিকে এখনও তার লগ 4 জলের সমতুল্য অর্থাৎ লোগোজেজেপিপিতে স্থানান্তরিত করতে হবে । অন্য দিক থেকে স্থানান্তরিত করার সময়, লগ 4 জে কনফিগারেশন, অর্থাৎ লগ 4j.properties , এর লগব্যাক সমতুল্যে রূপান্তর করা প্রয়োজন। তার জন্য একটি অন-লাইন সরঞ্জাম রয়েছে । আপনার সমস্ত সফ্টওয়্যার এর সোর্স কোড এবং এর নির্ভরতা জুড়ে প্রচারিত লগার কলগুলি স্থানান্তরিত করার জন্য প্রয়োজনীয় কাজের তুলনায় মাইগ্রেটিং কনফিগারেশন ফাইলগুলিতে জড়িত কাজের পরিমাণ অনেক কম।


28
এরকম একটি বহুল জনপ্রিয় সফ্টওয়্যারটির বিকাশকারীদের সাথে কথা বলার এক পুনরায় সুযোগ। Log4j এর জন্য Ceki ধন্যবাদ।
শ্রুজান কুমার গুল্লা

7
দাবি অস্বীকার: এই লোকটি লগ 4 জে, এসএলএফ 4 জে এবং লগব্যাকের সমস্তের মূল বিকাশকারী। তবে লগ 4 জে এর জন্য আর কাজ করবেন না।
ভিক্টর স্টাফুসা

56

আপনার উচিত? হ্যাঁ

কেন? লগ 4 জে মূলত অবহিত করা হয়েছে অবহেলা করা হয়েছে

এটা কি জরুরী? হয়তো না.

এটা কি বেদনাবিহীন? সম্ভবত, তবে এটি আপনার লগিং বিবৃতিগুলির উপর নির্ভর করে।

মনে রাখবেন যে আপনি যদি লগব্যাকের (বা এসএলএফ 4 জ) পুরোপুরি সদ্ব্যবহার করতে চান তবে আপনার যথাযথ লগিং স্টেটমেন্ট লিখতে হবে । এটি অলস মূল্যায়নের কারণে দ্রুত কোডের মতো সুবিধা এবং কোডের কম লাইনের ফলে আপনি গার্ডদের এড়াতে পারবেন বলে ফল পাবেন।

অবশেষে, আমি অত্যন্ত SLF4J সুপারিশ। (আপনার নিজের সম্মুখ দিয়ে চাকাটি পুনরায় তৈরি করুন কেন?)


48
দ্রষ্টব্য: লগ 4j প্রকল্পটি লগ 4 জে অবহিত বিবেচনা করে না।
থরবজর্ন রাভন অ্যান্ডারসন

17
পরিভাষাটি পরিষ্কার করা উচিত; স্পষ্টতই, লগ 4j প্রকল্পের লেখক লগব্যাকটিকে লগ 4j এর উত্তরসূরি হিসাবে বিবেচনা করে । এটি উভয় প্রকল্পের একই লেখক, সুতরাং তার মতামত কিছুটা ওজন বহন করা উচিত; "লগ 4 জে প্রকল্প" নিজেই কিছুই "বিবেচনা" করে না। লগ 4 জে যুক্ত ব্যক্তিদের বর্তমান গোষ্ঠীর মতামতগুলি ডাইভারিং করা হয়েছে (কিছু লোকেরা আসলে সম্মত হয়, কিছু লোক অবাক হয় না) আমাদের পিছনে আরও কিছু ইতিহাসের সাথে (আসল মন্তব্যের 3 বছর পরে), এসএলএফ 4 জে + লগব্যাক লগ 4 জে নিয়ে জমি অবিরত করতে থাকবে না।
মাইকেল 25

@ মাইকেল_এন দয়া করে নোট করুন যে লগ 4 জে 1 কোনও একক ব্যক্তি দ্বারা লেখা হয়নি। "একই লেখক" বলা ভুল। সেকি গুরুত্বপূর্ণ লেখক, সন্দেহ নেই তবে একমাত্র তিনিই নন। আসলে প্রচুর লোক লোগ 4 জ 1 এটি কী তা তৈরিতে সহায়তা করেছিল।
খ্রিস্টান

@ ক্রিশ্চিয়ান "লিখিত ছিল না ..." অবশ্যই, এটি কোনও পরিপক্ক অ্যাপাচি প্রকল্পের জন্য আবশ্যক (এবং আমার যোগ্যতা, "লগ 4 জে যুক্ত লোকদের বর্তমান গ্রুপ"); তবুও, আমি যদি মন্তব্যটি সম্পাদনা করতে পারতাম, আমি উইকিপিডিয়া নিবন্ধটিও বলেছে যে আমি " মূলত লেখক" বলব । পুনরায়: "আসলে প্রচুর লোক লোগ 4 জ 1 তৈরিতে সহায়তা করেছিল এটি কী" , এটি একেবারে, সমতুল্য সত্য (অর্থাত্ ভাল বা খারাপের জন্য); এবং এছাড়াও, কিছুটা ছোট উপায়ে, slf4j + লগব্যাক :-)
মাইকেল 25

3
সুতরাং, এটির মধ্যে আপনার সকলের মধ্যে এই বা সেই লগিং লাইব্রেরির সাথে লড়াই করা উচিত? কেন আমরা লাইব্রেরিগুলিকে হত্যা / প্রচার করার চেষ্টা করছি? কমপক্ষে কিছু যুক্তিযুক্ত যুক্তি সরবরাহ করুন কেন একজন অপরের চেয়ে ভাল। Godশ্বর, স্ট্যাক ওভারফ্লো একটি জগাখিচুড়ি।
ব্যবহারকারী

48

লগিং বিশ্বে ফ্যাসেডগুলি রয়েছে (যেমন অ্যাপাচি কমন্স লগিং, এসএলএফ 4 জে বা এমনকি লোগোজেজ ২.০ এপিআই) এবং বাস্তবায়নগুলি (লগ ৪ জে ১ + ২, জাভা.ইটিল.লগিং, টিনিলগ, লগব্যাক)।

মূলত আপনার নিজের তৈরি র‌্যাপারটি slf4j IF এর সাথে প্রতিস্থাপন করা উচিত এবং যদি কেবল কোনও কারণে আপনি এতে সন্তুষ্ট না হন। অ্যাপাচি কমন্স লগিং আসলেই একটি আধুনিক এপিআই সরবরাহ করছে না, এসএলএফ 4 জে এবং নতুন লগ 4 জ 2 ফ্যাসাদ এটি সরবরাহ করছে। বেশ কয়েকটি গুচ্ছ অ্যাপ্লিকেশন slf4j কে একটি র‍্যাপার হিসাবে ব্যবহার করে তা ব্যবহার করা বোধগম্য হতে পারে।

slf4j একটি দুর্দান্ত এপিআই চিনি দেয়, উদাহরণস্বরূপ slf4j ডক্স থেকে:

logger.debug("Temperature set to {}. Old temperature was {}.", t, oldT);

এটি পরিবর্তনশীল প্রতিস্থাপন। এটি লগ 4 জ 2 দ্বারা সমর্থিত।

তবে আপনার সচেতন হওয়া দরকার যে slf4j কিউওএস দ্বারা বিকাশ করা হয়েছে যারা লগব্যাকও বজায় রাখে। লগ 4 জে ২.০ এপাচি সফটওয়্যার ফাউন্ডেশনে বেকড রয়েছে। গত তিন বছরে একটি প্রাণবন্ত এবং সক্রিয় সম্প্রদায় সেখানে আবার বেড়েছে। যদি আপনি ওপেন সোর্সটির প্রশংসা করেন কারণ এটি অ্যাপাচি সফ্টওয়্যার ফাউন্ডেশন এর সমস্ত গ্যারান্টি সহ সম্পন্ন করেছে আপনি লগ 4 জ 2 সরাসরি ব্যবহার করার পক্ষে slf4j ব্যবহার করে পুনর্বিবেচনা করতে পারেন।

দয়া করে নোট করুন:

অতীতে লগব্যাক থাকাকালীন লগ 4 জ 1 সক্রিয়ভাবে রক্ষণাবেক্ষণ করা হয়নি। তবে আজ বিষয়গুলি ভিন্ন। লগ 4 জ 2 সক্রিয়ভাবে রক্ষণাবেক্ষণ করা হয় এবং প্রায় নিয়মিত সময়সূচীতে প্রকাশ হয়। এটিতে প্রচুর আধুনিক বৈশিষ্ট্য অন্তর্ভুক্ত রয়েছে এবং -আইহো- লগব্যাকের চেয়ে বেশ কয়েকটি জিনিসকে আরও ভাল করে তোলে। এটি কখনও কখনও কেবল স্বাদের বিষয় এবং আপনার নিজের সিদ্ধান্তগুলি আঁকা উচিত।

আমি লগ 4 জে 2.0 এর নতুন বৈশিষ্ট্যগুলিতে একটি দ্রুত ওভারভিউ লিখেছি: http://www.grobmeier.de/the-new-log4j-2-0-05122012.html

পড়ার সময় আপনি দেখতে পাবেন যে লগ 4 জ 2 লগব্যাক দ্বারা অনুপ্রাণিত হয়েছিল তবে অন্যান্য লগিং ফ্রেমওয়ার্কের দ্বারাও। তবে কোড বেসটি আলাদা; এটি লগ 4 জে 1 এবং লগব্যাকের সাথে শূন্যের প্রায় কিছুই ভাগ করে না। এটি কিছু উন্নতির দিকে নিয়ে যায় যেমন উদাহরণস্বরূপ লোগ 4 জ 2 হুডের নীচে স্ট্রিংয়ের পরিবর্তে বাইটেম স্ট্রিমের সাথে কাজ করে। পুনরায় কনফিগার করার সময় এটি ইভেন্টগুলি আলগা করে না।

আমি জানি অন্য ফ্রেমওয়ার্কগুলির চেয়ে লগ 4 জ 2 আরও উচ্চ গতির সাথে লগ করতে পারে: http://www.grobmeier.de/log4j-2-performance-close-to-insane-20072013.html

এবং এখনও ব্যবহারকারী সম্প্রদায় লগব্যাকসের চেয়ে অনেক বড় বলে মনে হচ্ছে: http://www.grobmeier.de/apache-log4j-is-the-leading-logging-framework-06082013.html

এটি সর্বোত্তম ধারণাটি হ'ল আপনি হ'ল লগিং ফ্রেমওয়ার্কগুলি বেছে নিন যা আপনি যা অর্জন করতে চান তার চেয়ে উপযুক্ত fits আমি যদি পরিবেশের পরিবেশে লগিং নিষ্ক্রিয় করে কেবল আমার অ্যাপ্লিকেশনটিতে বেসিক লগিং সম্পাদন করি তবে আমি একটি পূর্ণ কাঠামো স্যুইচ করব না। তবে আপনি যদি লগিংয়ের সাথে আরও কিছু করেন তবে কেবল ফ্রেমওয়ার্ক এবং তাদের বিকাশকারীদের দ্বারা সরবরাহ করা বৈশিষ্ট্যগুলি দেখুন। আপনি কিউওএসের মাধ্যমে লগব্যাকের জন্য বাণিজ্যিক সমর্থন পেয়েছেন (আমি শুনেছি) লগ 4 জ 2 এর জন্য বর্তমানে কোনও বাণিজ্যিক সমর্থন নেই the অন্যদিকে, আপনার যদি অডিট লগিং করতে হয় এবং অ্যাসিঙ্ক অ্যাপেন্ডারদের দ্বারা সরবরাহিত উচ্চ কার্যকারিতা প্রয়োজন হয় তবে এটি অনেক অর্থবোধ করে makes লগ 4 জে 2 পরীক্ষা করুন।

দয়া করে নোট করুন যে তারা প্রদান করে সমস্ত আরাম সত্ত্বেও, facades সবসময় কিছুটা কর্মক্ষমতা খান eat এটি সম্ভবত আপনাকে কোনওভাবেই প্রভাবিত করছে না, তবে আপনি যদি কম সংস্থার উপর থাকেন তবে আপনার যা কিছু পারে তা সংরক্ষণ করার প্রয়োজন হতে পারে।

আপনার প্রয়োজনীয়তা আরও ভালভাবে না জেনে একটি সুপারিশ দেওয়া প্রায় অসম্ভব। কেবল: অনেক লোকের স্যুইচ করার কারণে স্যুইচ করবেন না। আপনি এটির মান দেখতে পাওয়ায় কেবল স্যুইচ করুন। এবং যুক্তি যে log4j মারা গেছে আর গণনা করা হয় না। এটি জীবিত, এবং গরম

অস্বীকৃতি: আমি বর্তমানে ভিপি, অ্যাপাচি লগিং পরিষেবাদি এবং লগ 4 জেও জড়িত।


19

আপনার প্রশ্নের সঠিক উত্তর দিচ্ছে না, তবে আপনি যদি নিজের তৈরি পোশাক থেকে সরে যেতে পারেন তবে জাভা (এসএলএফ 4 জে) এর জন্য সিম্পল লগিং ফ্যাসাদ রয়েছে যা হাইবারনেট এখন (কমন্স লগিংয়ের পরিবর্তে) স্যুইচ করেছে।

এসএলএফ 4 জে জাকার্তা কমন্স লগিং (জেসিএল) এর সাথে পর্যবেক্ষণ করা ক্লাস লোডার সমস্যা বা মেমরি ফাঁসের কোনওটিই ভোগাচ্ছে না।

এসএলএফ 4 জেজেডি লগিং, লগ 4 জে এবং লগব্যাক সমর্থন করে। সুতরাং সময় ঠিক থাকলে log4j থেকে লগব্যাকে স্যুইচ করা মোটামুটি সহজ হওয়া উচিত।

সম্পাদনা করুন: আমি নিজেকে পরিষ্কার করে দিইনি এমন অ্যাপলজিগুলি। লগ 4 জে বা লগব্যাকের মধ্যে কঠোর পছন্দ করতে নিজেকে বিচ্ছিন্ন করতে আমি SLF4J ব্যবহার করার পরামর্শ দিচ্ছিলাম।


3
আমি SLF4J জানি। তবে আমি লগিং ফ্রেমওয়ার্কের জন্য অনুরোধ করলাম মুখোশের জন্য নয়!

4
দুঃক্ষিত। আমি যা পরামর্শ দিচ্ছিলাম তা হ'ল আপনি যদি নিজের কাস্টম ফ্যাসিডের পরিবর্তে এসএলএফ 4 জ ব্যবহার করে থাকেন, তবে লগ 4 জে থেকে লগব্যাকে স্যুইচিং করা কম ব্যথা হবে?
টুলকিট

এই উদ্ধৃতি উত্স কি? কমন্স লগিং একটি চেষ্টা করা এবং পরীক্ষিত উপাদান। এটির সাথে আমার কোনও স্মৃতি ফাঁস হয়নি।
ক্ষিতাইজ শর্মা

1
@ ক্ষিটিশর্মা - এসএলএফ 4 জ নথিপত্র লিঙ্ক থেকে আমি সরবরাহ করেছি: slf4j.org/manual.html
টুলকিট

13

আপনার সিদ্ধান্ত ভিত্তিক করা উচিত

  • এই "আরও বৈশিষ্ট্যগুলির" জন্য আপনার আসল প্রয়োজন; এবং
  • পরিবর্তনটি কার্যকর করার জন্য আপনার প্রত্যাশিত ব্যয়।

আপনারা এপিআইগুলিকে পরিবর্তন করার তাগিদকে প্রতিহত করা উচিত কারণ এটি "আরও নবীন, চিকনতর, আরও ভাল"। আমি "যদি এটি ভেঙে না যায় তবে লাথি মারবেন না" নীতি অনুসরণ করি।

আপনার অ্যাপ্লিকেশনটির যদি খুব পরিশীলিত লগিং কাঠামো প্রয়োজন হয় তবে আপনি কেন তা বিবেচনা করতে পারেন।


3

আইএমএইচও, পরিপক্ক প্রকল্প বা এমনকি উন্নয়নের পর্যায়ে গভীর প্রকল্প সম্ভবত এই ধরনের আপগ্রেড থেকে লাভের চেয়ে আরও বেশি looseিলে হবে। লগব্যাক অবশ্যই পয়েন্টের অ্যারেতে অনেক বেশি অগ্রসর, তবে কোনও কার্যনির্বাহী সিস্টেমে সম্পূর্ণ প্রতিস্থাপনের জন্য কিছুটা হলেও নয়। আমি অবশ্যই একটি নতুন বিকাশের জন্য লগব্যাকটি বিবেচনা করব, তবে বিদ্যমান লগ 4 জে ইতিমধ্যে প্রকাশিত এবং মিলিত শেষ ব্যবহারকারীর জন্য যথেষ্ট ভাল এবং পরিপক্ক। এটি খুব সাবজেক্টিভ, আপনার নিজের খরচ দেখা উচিত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.