শুধুমাত্র সতর্কতা এবং ত্রুটিগুলি প্রদর্শন করতে মেভেন লগিং স্তর কীভাবে পরিবর্তন করবেন?


142

আমি ম্যাভেনকে তথ্য বার্তা প্রদর্শন করা থেকে বিরত রাখতে চাই, আমি কেবল সতর্কতা এবং ত্রুটিগুলি দেখতে চাই (যদি থাকে)।

আমি কীভাবে আধ্যাত্মিক কমান্ড লাইনটি মাভেনকে পরিবর্তন করে এটি অর্জন করতে পারি?


প্রাসঙ্গিক বিষয়: স্ট্যাকওভারফ্লো . com / প্রশ্নগুলি / 10১০৯/২-B, --batch-modeবা কম ভার্বোস -qতৈরি করবে mvn
স্টানিস্লাভ

উত্তর:


108

আপনার প্রশ্নের উত্তর

আমি একটি ছোট তদন্ত করেছি কারণ আমিও সমাধানটিতে আগ্রহী।

ম্যাভেন কমান্ড লাইন ভার্বোসিটি বিকল্পগুলি

Http://books.sonatype.com/mvnref-book/references/running-sect-options.html#running-sect-verbose-option অনুসারে

  • ত্রুটির জন্য
  • ডিবাগের জন্য এক্স
  • শুধুমাত্র ত্রুটির জন্য-কি

মাভেন লগিং কনফিগার ফাইল

বর্তমানে maven 3.1.x System.out এ লগ করতে SLF4J ব্যবহার করে। আপনি ফাইলটিতে লগিং সেটিংস পরিবর্তন করতে পারেন:

${MAVEN_HOME}/conf/logging/simplelogger.properties

পৃষ্ঠা অনুসারে: http://maven.apache.org/maven-logging.html

কমান্ড লাইন সেটআপ

আমি মনে করি আপনার কমান্ড লাইন প্যারামিটারের মাধ্যমে সাধারণ লগরের ডিফল্ট লগ স্তর সেটআপ করতে সক্ষম হওয়া উচিত:

$ mvn clean package -Dorg.slf4j.simpleLogger.defaultLogLevel=debug

তবে আমি তা কাজে লাগাতে পারিনি । আমি অনুমান করি এটির সাথে একমাত্র সমস্যা হ'ল ম্যাভেন ক্লাসপথের কনফিগারেশন ফাইল থেকে ডিফল্ট স্তরটি তুলবে। আমি System.properties এর মাধ্যমে আরও কয়েকটি সেটিংস চেষ্টা করেছিলাম তবে সেগুলি সবই ব্যর্থ হয়েছিল।

উপাঙ্গ

আপনি এখানে গিথুবে slf4j এর উত্স খুঁজে পেতে পারেন: slf4j github

সিম্পলগারটির উত্স এখানে: slf4j / jcl-over-slf4j / src / main / java / org / apache / commons / লগিং / ইমপ্ল / সরললগ.জভা

প্লেক্সাস লোডার লোড করে simplelogger.properties


2
আপনি কি simplelogger.propertiesকাজ পরিবর্তন পেয়েছেন? আমি যখন যথাযথভাবে org.slf4j.simpleLogger.warnLevelStringসেটিংস mvn compileআপডেটগুলি পরিবর্তন করি তবে এটি org.slf4j.simpleLogger.defaultLogLevelসেটিংটিকে উপেক্ষা করছে বলে মনে হয় । সতর্কতা বা ত্রুটি হিসাবে সেট করার পরেও এটি তথ্য স্তরে লগ ইন করে।
অ্যালডেন

1
@ অ্যালডেন, আমিও একই আচরণ পাচ্ছি। এটি কেবল উপেক্ষা করা হয়।
জ্যাক্স

18
আমার পক্ষে এটি প্রমাণিত হয়েছে যে বিল্ড কমান্ডে "-Dorg.slf4j.simpleLogger.defaultLogLevel = তথ্য" যুক্ত করার ফলে কোনও প্রভাব নেই। যদি আমি এটির এমএভিএন_ওপিটিএসে বিল্ড করার আগে এটি সংজ্ঞায়িত করি: "MAVEN_OPTS = $ MAVEN_OPTS -Dorg.slf4j.simpleLogger.defaultLogLevel = debug" রফতানি করুন, তবে এটি {V MAVEN_HOME changing /conf/logging/smpletiesgerprop পরিবর্তন না করে পুরোপুরি কাজ করে। ।
গবার লিপটিক

1
অ্যালডেন, গ্যাবার লিপটিক: এবং আমার জন্য দুটি পদ্ধতির কোনওটিই কাজ করে না। :( আমি
ম্যাভেন ৩.২.৫

1
যদি উইন্ডোজ, ব্যাট ফাইলের মধ্যে, ব্যবহারের সেট MAVEN_OPTS =% MAVEN_OPTS% -Dorg.slf4j.simpleLogger.defaultLogLevel = সতর্ক
feilong

45

লিনাক্স:

mvn validate clean install | egrep -v "(^\[INFO\])"

অথবা

mvn validate clean install | egrep -v "(^\[INFO\]|^\[DEBUG\])"

উইন্ডোজ:

mvn validate clean install | findstr /V /R "^\[INFO\] ^\[DEBUG\]"

5
তবে যদি কথাটি হয় mvn চলাকালীন অপ্রয়োজনীয় IO হ্রাস করতে ... তবে এটি আসলে কৌশলটি নয়
হোয়াফান

উদাহরণস্বরূপ, উইন্ডোজ মেশিনে আমরা কীভাবে এটি অর্জন করতে পারি?
হেমন্তে

এরকম কিছুmvn validate clean install | findstr /V /B "\[INFO\]" | findstr /V /B "\[WARN\]"
টম এইচ

দেখে মনে হচ্ছে findstrরেগেক্স এবং অন্যান্য বিকল্পগুলি এটি আরও সংক্ষিপ্ত করে তুলতে পারে - ss64.com/nt/findstr.html
টম এইচ

mvn validate clean install | findstr /V /R "^\[INFO\] ^\[WARN\]"
টম এইচ

32

উদাহরণস্বরূপ, আপনি MAVEN_OPTS এর মাধ্যমে এটি অর্জন করতে পারেন
MAVEN_OPTS=-Dorg.slf4j.simpleLogger.defaultLogLevel=warn mvn clean

পরিবর্তে সিস্টেম সম্পত্তি সরাসরি কমান্ড লাইনে স্থাপন করা। (কমপক্ষে maven জন্য 3.3.1।)

আপনি যদি সমস্ত লভ্য দাওয়াত জুড়ে আপনার লগইনের জন্য লগিং পরিবর্তন করতে চান তবে ~/.mavenrcসেটিংসের জন্য ব্যবহারের কথা বিবেচনা করুন MAVEN_OPTS


2
এটি কাজ করে বলে মনে হচ্ছে আমি স্তরটিকে ত্রুটি হিসাবে সেট করে সতর্কতা এবং তথ্য বার্তাটি অক্ষম করতে পারি, তবে দুর্ভাগ্যক্রমে এটি নিয়মিত আউটপুটও বন্ধ করে দিয়েছে। আমি আসলে কয়েকটি সতর্কতা অক্ষম করার চেষ্টা করছিলাম যখন help:evaluateলক্ষ্যটি প্রিন্ট করার জন্য চলমান project.versionএবং এই আউটপুটটি (যদিও এটি প্রদর্শিত হবে বলে মনে হয় না slf4j) বন্ধ হয়ে যায়।
হরিদস্ব

একমাত্র উত্তর যা স্থায়ীভাবে মাভেন ইনস্টলেশনের সাথে ঝামেলা ছাড়াই কাজ করে। মাভেন বিল্ড সিস্টেমের মধ্যে একটি ডাইনোসর, এর অন্য কারণ - এটি কেবল সাধারণ জ্ঞানের প্রয়োজনীয়তার জন্য সমর্থন করে না।
অভিজিৎ সরকার

16

আপনি যদি লগব্যাক ব্যবহার করছেন তবে কেবল এই logback-test.xmlফাইলটি src/test/resourcesডিরেক্টরিতে রেখে দিন:

<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
</appender>
<root level="INFO">
    <appender-ref ref="STDOUT" />
</root>
</configuration>

3

আপনি কমান্ডলাইনে নিজেই নীচে ব্যবহার করে এটি অর্জন করতে পারেন

 -e for error
-X for debug
-q for only error

যেমন:

mvn test -X -DsomeProperties='SomeValue' [For Debug level Logs]
mvn test -e -DsomeProperties='SomeValue' [For Error level Logs]
mvn test -q -DsomeProperties='SomeValue' [For Only Error Logs]


2

দুর্ভাগ্যক্রমে, এমনকি maven 3 দিয়েও এটি করার একমাত্র উপায় হ'ল উত্স কোডটি প্যাচ করা।

কীভাবে এটি করা যায় সে সম্পর্কে এখানে সংক্ষিপ্ত নির্দেশনা দেওয়া হল।

ক্লোন বা কাঁটা মাভেন 3 রেপো: "গিট ক্লোন https://github.com/apache/maven-3.git "

Org.apache.maven.cli.MavenCli # লগিং সম্পাদনা করুন, এবং পরিবর্তন করুন

cliRequest.request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_INFO );

প্রতি

cliRequest.request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_WARN );

বর্তমান স্ন্যাপশট সংস্করণে এটি 270 লাইনে রয়েছে

তারপরে কেবল "এমভিএন ইনস্টল" চালান, আপনার নতুন মাভেন ডিস্ট্রো "অ্যাপাচি-ম্যাভেন \ টার্গেট folder" ফোল্ডারে অবস্থিত হবে

রেফারেন্সের জন্য এই পার্থক্যটি দেখুন: https://github.com/ushkinaz/maven-3/commit/cc079aa75ca8c82658c7ff53f18c6caaa32d2131


1
এই উত্তরটি এখনকার হিসাবে OBSOLETE - ক) রেপো ইউআরএল পরিবর্তিত হয়েছে, খ) এই কোডটিতে কোনও INFO স্তরের বিবৃতি নেই, গ) ভিন্ন ইউআরএল কাজ করে না।
গ্রেগ দুবিকি

কোড INFO কোথায় ব্যবহার করে তা বিবেচনা করে না - প্লাগইনগুলি বিকাশ করার সময়, আপনার মোজোর সাথে মভেন লগারের উপর নির্ভর করা উচিত getLog()- যদি আপনি কনফিগারেশনের সাথে থাকতে পারেন।
আদম

1

সবচেয়ে সহজ উপায় হ'ল ম্যাভেন ৩.৩.১ বা তার চেয়ে বেশি ${maven.projectBasedir}/.mvn/jvm.configসমর্থনটি আপগ্রেড করা support

তারপরে আপনি মাগেনের এসএল 4 এফজে'র সিম্পলোগার সমর্থন থেকে যে কোনও বিকল্প ব্যবহার করতে পারবেন সমস্ত লগার বা নির্দিষ্ট লগার কনফিগার করতে। উদাহরণস্বরূপ, warnপিএমডি যা লগ ইন করার জন্য কনফিগার করা হয়েছে তা বাদ দিয়ে স্তরে সমস্ত সতর্কতা কীভাবে করা যায় তা এখানে error:

cat .mvn/jvm.config
-Dorg.slf4j.simpleLogger.defaultLogLevel=warn -Dorg.slf4j.simpleLogger.log.net.sourceforge.pmd=error

মাভেনের সাথে লগিং সম্পর্কিত আরও বিশদ জানতে এখানে দেখুন ।


1

পরিবর্তন infoকরার জন্য errorsimplelogging.properties ফাইলটি আপনার প্রয়োজন অর্জনের সাহায্য করবে।

কেবল নীচের লাইনের মান পরিবর্তন করুন

org.slf4j.simpleLogger.defaultLogLevel=info 

প্রতি

org.slf4j.simpleLogger.defaultLogLevel=error

0

আমি খেয়াল করেছি ম্যেন সানফায়ার প্লাগইনের ২.২০.১ সংস্করণটি ব্যবহার করার সময় , সমস্ত সতর্কতাগুলি ডাম্পস্ট্রিম ফাইলটিতে লিখিত হয়। যেমন/myproject/target/surefire-reports/2017-11-11T23-02-19_850.dumpstream


0

যান simplelogger.propertiesমধ্যে ${MAVEN_HOME}/conf/logging/এবং নিম্নলিখিত বিশিষ্টতাগুলি সেট:

org.slf4j.simpleLogger.defaultLogLevel=warn
org.slf4j.simpleLogger.log.Sisu=warn
org.slf4j.simpleLogger.warnLevelString=warn

এবং সাবধান: warnনাwarning

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