JVM আর্গুমেন্ট (গুলি) এর মাধ্যমে log4j কনফিগারেশন?


133

লগ 4j সঠিকভাবে চালানোর জন্য আমার কী ভেরিয়েবলগুলি JVM এর সাথে যুক্তি হিসাবে সেট / পাস করতে হবে? এবং সঠিকভাবে আমার অর্থ কনসোলে অভিযোগ এবং মুদ্রণ নয়। আমি একটি সাধারণ উদাহরণ দেখতে পাচ্ছি?

দ্রষ্টব্য: আমার অ্যাপ্লিকেশনটিতে লগ 4j.properties ফাইল তৈরি করা এড়াতে হবে।


2
পাঠক সাবধান: জেনে রাখা গুরুত্বপূর্ণ যে প্রশ্নটি log4j সম্পর্কে জিজ্ঞাসা করছে, log4j2 নয় not
Neves

উত্তর:


161

আপনার কি লগ 4j কনফিগারেশন ফাইল রয়েছে? কেবল এটি ব্যবহার করে রেফারেন্স করুন

-Dlog4j.configuration={path to file}

যেখানে file ফাইলের পথে with এর উপসর্গ করা উচিত file:

সম্পাদনা করুন: আপনি যদি লগ 4 জ 2 নিয়ে কাজ করছেন তবে আপনাকে ব্যবহার করা দরকার

-Dlog4j.configurationFile={path to file}

উত্তর https://stackoverflow.com/a/34001970/552525 থেকে নেওয়া


ব্রায়ান - আমি যা খুঁজছিলাম ঠিক তা নয়, তবে আমার কাছে মনে হয় এটি আমার অ্যাপ্লিকেশনটিতে কোনও ফাইল সরিয়ে নিয়ে JVM আরগ্সের মাধ্যমে সম্পত্তি নির্ধারণের মধ্যে একটি শালীন সমঝোতা।
jconlin

আমি মনে করি আপনার অ্যাপ্লিকেশনটি আরও জটিল হয়ে উঠলে (এটি যদি হয়) তবে ফাইলটি আপনি আরও কনফিগার করার সাথে সাথে এটি আরও পরিচালিত হবে। তবে আমি স্বীকার করি আমি এখানে আপনার ব্যবহারের ক্ষেত্রে অনুমান করছি।
ব্রায়ান অ্যাগনিউ

25
{path to file}file:এটি কাজ করার জন্য এটির সাথে চাপ দেওয়া দরকার ।
বা ম্যাপার

2
@ ওরোম্পার - আমি যথাযথভাবে সংশোধন করেছি
ব্রায়ান

6
সম্পত্তির নাম এবং বাক্য গঠন পরিবর্তিত হিসাবে Log4j 2 ব্যবহার করে দেখুন । এই উত্তর দেখুন ।
জোসে আন্দিয়াস

161

সমাধানটি নীচের JVM যুক্তিটি ব্যবহার করছে:

-Dlog4j.configuration={path to file}

ফাইলটি ক্লাসপথে না থাকলে ( WEB-INF/classesটমক্যাটের ক্ষেত্রে) তবে আপনার ডিস্কে কোথাও ব্যবহার করুন file:, পছন্দ করুন

-Dlog4j.configuration=file:C:\Users\me\log4j.xml

আরও তথ্য এবং উদাহরণ এখানে: http://logging.apache.org/log4j/1.2/manual.html


2
লগব্যাকের জন্য:-Dlogback.configurationFile=C:\logback-test.xml
শে

2
ফাইল উল্লেখ করার জন্য +1 (টিম কী বলেছে তার পুনরাবৃত্তি করে This এটি আমাকে বহুবার
লগ

13
আরেকটি জেভিএম যুক্তি খুব কুশলী ডিবাগ log4j কনফিগ:-Dlog4j.debug
কেসি

2
এই পদ্ধতির সাথে কি আপেক্ষিক পথ ব্যবহার করা সম্ভব?
এএএ

33

এটি সম্ভবত (log4j2 সহ) পরিবর্তিত হয়েছে বলে মনে হচ্ছে:

-Dlog4j.configurationFile=file:C:\Users\me\log4j.xml

দেখুন: https://logging.apache.org/log4j/2.x/manual/configration.html


এটি আমাকে নিম্নলিখিত ব্যতিক্রম দেয়। সি: \ বিকাশ \ সূর্যগ্রহণ cl ইক্লিপসমার্স \ ফাইল: সি: \ ব্যবহারকারীগণ \ এবিসি \ লগ 4j2.xml কীভাবে আমি পথটি নিখুঁত করব
সাইবারমনক

ডকার কনটেইনারগুলির জন্য, আমি ব্যবহার করেছি JAVA_PARAMS="-Dlog4j.configurationFile=classpath:log4j2-container.xml"যদি ডকার চিত্রটি এনভি ভার্স সহ JAVA_PARAMS ওভাররাইডিং সমর্থন করে এবং ফাইলটি জারের ভিতরে রয়েছে।
মার্সেলো ডি বিক্রয় 20

21

আমি জানি এটি ইতিমধ্যে জবাব দেওয়া হয়েছে, তবে আপনি বলেছিলেন যে এটি আপনি যা খুঁজছেন ঠিক তা নয়, আমি নিম্নলিখিত বিকল্পটি উল্লেখ করতে চাই:

আপনি বৈশিষ্ট্য বা এক্সএমএল ফাইলের পরিবর্তে একটি কনফিগারেশন ক্লাসও ব্যবহার করতে পারেন।

-Dlog4j.configuratorClass=com.foo.BarConfigurator

দেখুন http://logging.apache.org/log4j/1.2/manual.html বিস্তারিত জানার জন্য।


1
কেউ যদি কনফিগার ফাইল তৈরি করা এড়াতে চান তবে এটি সঠিক সমাধান। আপনার নিজস্ব কাস্টম কনফিগারেটর শ্রেণীর অভ্যন্তরে আপনি বেসিক কনফিগ্রেটর () বা কল করতে পারেন বা নিজের ইচ্ছেমতো নিজের লগার এবং অ্যাপেন্ডার তৈরি করতে পারেন। তবে আমি একটি কনফিগার ফাইল বেশি পছন্দ করব!
skiphoppy

11

সাধারণত, আপনার লগ 4j.properties ফাইল যতক্ষণ ক্লাসপথে থাকে, লগ 4 জে জেএমএম প্রারম্ভকালে এটি স্বয়ংক্রিয়ভাবে নেওয়া উচিত।


1
এটি সত্য: -ডলজ 4 জে কনফিগারেশন কেবল তখনই প্রয়োজন যদি ফাইলটি ক্লাসপথে না থাকে বা আপনি যদি এমন কোনও ফাইল ব্যবহার করতে চান যা
ক্লাসপথে

8

২০১৫ সাল থেকে পার্টিতে দেরীতে, লগ 4 জে 1.x ইওএল পৌঁছেছে ।

Log4J 2.x এর পরে JVM বিকল্পটি হওয়া উচিত-Dlog4j.configurationFile=<filename>


দ্রষ্টব্য <filename>বর্গ পথ করার জন্য একটি ফাইল আপেক্ষিক হতে পারে ছাড়াfile: অন্যান্য উত্তর সুপারিশ করেছে।


2
অন্যান্য উত্তরগুলি যেমন বৈধ নয় তেমন গুরুত্বপূর্ণ উত্তর।
ইওসালে

1

আপেক্ষিক পথটিও ঠিক আছে:

java -Dlog4j.configuration=file:".\log4j.properties" -jar com.your-1.0-SNAPSHOT.jar

অথবা

java -Dlog4j.configuration=file:".\log4j.xml" -jar com.your-1.0-SNAPSHOT.jar

0

আপনি যদি গ্রেড ব্যবহার করছেন। আপনি 'অ্যাপ্লিকেশন' প্লাগইন প্রয়োগ করতে পারেন এবং নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন

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