Tetapi saya tidak bisa membuatnya bekerja . Saya kira satu-satunya masalah dengan ini adalah, maven mengambil level default dari file konfigurasi di classpath. Saya juga mencoba beberapa pengaturan lain melalui System.properties, tetapi semuanya tidak berhasil.
Lampiran
Anda dapat menemukan sumber slf4j di github di sini: slf4j github
apakah Anda mendapatkan simplelogger.propertiesperubahan berfungsi? Ketika saya mengubah pembaruan org.slf4j.simpleLogger.warnLevelStringpengaturan dengan mvn compiletepat, tetapi tampaknya mengabaikan org.slf4j.simpleLogger.defaultLogLevelpengaturan. Itu juga masuk pada tingkat info, bahkan ketika saya mengatur itu untuk memperingatkan atau kesalahan.
Alden
1
@Alden, saya mendapatkan perilaku yang sama. itu hanya diabaikan.
Jax
18
Bagi saya ternyata menambahkan "-Dorg.slf4j.simpleLogger.defaultLogLevel = info" ke perintah build tidak memiliki efek apa pun. Jika saya mendefinisikan ini sebelum membangun di MAVEN_OPTS seperti ini: ekspor "MAVEN_OPTS = $ MAVEN_OPTS -Dorg.slf4j.simpleLogger.defaultLogger.defaultLogLevel = debug", maka ia berfungsi dengan sempurna tanpa mengubah $ {MAVEN_HOME} /conf/logging/simpleloggerpropger. .
Gábor Lipták
1
Alden, Gábor Lipták: dan bagi saya tidak satu pun dari kedua metode ini yang berfungsi. :( Saya menggunakan Maven 3.2.5.
Greg Dubicki
1
jika windows, dalam file bat, gunakan set MAVEN_OPTS =% MAVEN_OPTS% -Dorg.slf4j.simpleLogger.defaultLogLevel = warn
Ini tampaknya berfungsi karena saya dapat menonaktifkan pesan peringatan dan info dengan mengatur level ke kesalahan, tetapi sayangnya ini juga mematikan output reguler. Saya benar-benar mencoba untuk menonaktifkan beberapa peringatan saat menjalankan help:evaluatetarget untuk mencetak nilai project.versiondan output ini (meskipun sepertinya tidak datang slf4j) juga dimatikan.
haridsv
Satu-satunya jawaban yang berfungsi tanpa mengacaukan instalasi Maven secara permanen. Alasan lain Maven adalah dinosaurus di antara sistem pembangunan - itu hanya tidak memiliki dukungan untuk persyaratan akal sehat.
Abhijit Sarkar
16
Jika Anda menggunakan Logback, cukup masukkan logback-test.xmlfile ini ke src/test/resourcesdirektori:
Jawaban ini adalah OBSOLETE sampai sekarang - a) URL repo telah berubah, b) tidak ada pernyataan tingkat INFO dalam kode ini, c) diff URL tidak berfungsi.
Greg Dubicki
Tidak masalah di mana kode menggunakan INFO - saat mengembangkan plugin, mojo Anda harus bergantung pada pakar logger dengan getLog()- jika Anda dapat hidup dengan konfigurabilitas.
Adam
1
Cara paling sederhana adalah memutakhirkan ke Maven 3.3.1 atau lebih tinggi untuk memanfaatkan ${maven.projectBasedir}/.mvn/jvm.configdukungan.
Kemudian Anda dapat menggunakan opsi apa pun dari dukungan SimpleLogger SL4FJ dari Maven untuk mengonfigurasi semua penebang atau penebang tertentu. Sebagai contoh, berikut adalah cara membuat semua peringatan di warnlevel, kecuali untuk PMD yang dikonfigurasi untuk masuk error:
Saya perhatikan ketika menggunakan versi 2.20.1 dari plugin maven sunfire , semua peringatan dituliskan ke file dumpstream. misalnya/myproject/target/surefire-reports/2017-11-11T23-02-19_850.dumpstream
-B, --batch-mode
atau-q
akan membuatmvn
lebih sedikit verbose.Jawaban:
Menjawab pertanyaan Anda
Saya melakukan penyelidikan kecil karena saya juga tertarik dengan solusinya.
Opsi verbositas baris perintah Maven
Menurut http://books.sonatype.com/mvnref-book/reference/running-sect-options.html#running-sect-verbose-option
File konfigurasi logging maven
Saat ini pakar 3.1.x menggunakan SLF4J untuk masuk ke System.out. Anda dapat mengubah pengaturan pencatatan pada file:
Menurut halaman: http://maven.apache.org/maven-logging.html
Pengaturan baris perintah
Saya pikir Anda harus dapat mengatur level Log default dari logger sederhana melalui parameter baris perintah, seperti ini:
Tetapi saya tidak bisa membuatnya bekerja . Saya kira satu-satunya masalah dengan ini adalah, maven mengambil level default dari file konfigurasi di classpath. Saya juga mencoba beberapa pengaturan lain melalui System.properties, tetapi semuanya tidak berhasil.
Lampiran
Anda dapat menemukan sumber slf4j di github di sini: slf4j github
Sumber simplelogger di sini: slf4j / jcl-over-slf4j / src / main / java / org / apache / commons / logging / impl / SimpleLog.java
Loader plexus memuat
simplelogger.properties
.sumber
simplelogger.properties
perubahan berfungsi? Ketika saya mengubah pembaruanorg.slf4j.simpleLogger.warnLevelString
pengaturan denganmvn compile
tepat, tetapi tampaknya mengabaikanorg.slf4j.simpleLogger.defaultLogLevel
pengaturan. Itu juga masuk pada tingkat info, bahkan ketika saya mengatur itu untuk memperingatkan atau kesalahan.Linux:
atau
Windows:
sumber
mvn validate clean install | findstr /V /B "\[INFO\]" | findstr /V /B "\[WARN\]"
findstr
mendukung regex dan opsi lain yang mungkin membuatnya lebih ringkas - ss64.com/nt/findstr.htmlmvn validate clean install | findstr /V /R "^\[INFO\] ^\[WARN\]"
Anda dapat mencapainya dengan MAVEN_OPTS, misalnya
MAVEN_OPTS=-Dorg.slf4j.simpleLogger.defaultLogLevel=warn mvn clean
Daripada menempatkan properti sistem langsung di baris perintah. (Setidaknya untuk pakar 3.3.1.)
Pertimbangkan
~/.mavenrc
untuk menggunakan pengaturanMAVEN_OPTS
jika Anda ingin login diubah untuk login Anda di semua doa pakar.sumber
help:evaluate
target untuk mencetak nilaiproject.version
dan output ini (meskipun sepertinya tidak datangslf4j
) juga dimatikan.Jika Anda menggunakan Logback, cukup masukkan
logback-test.xml
file ini kesrc/test/resources
direktori:sumber
Anda dapat mencapai ini dengan menggunakan di bawah ini di commandline itu sendiri
misalnya:
sumber
Sayangnya, bahkan dengan maven 3 satu-satunya cara untuk melakukannya adalah dengan menambal kode sumber.
Ini adalah instruksi singkat bagaimana melakukannya.
Klon atau garpu repo Maven 3: "git clone https://github.com/apache/maven-3.git "
Edit org.apache.maven.cli.MavenCli # logging, dan ubah
untuk
Dalam versi snapshot saat ini ada di baris 270
Kemudian jalankan "mvn install", distro maven baru Anda akan berada di folder "apache-maven \ target \"
Lihat perbedaan ini untuk referensi: https://github.com/ushkinaz/maven-3/commit/cc079aa75ca8c82658c7ff53f18c6caaa32d2131
sumber
getLog()
- jika Anda dapat hidup dengan konfigurabilitas.Cara paling sederhana adalah memutakhirkan ke Maven 3.3.1 atau lebih tinggi untuk memanfaatkan
${maven.projectBasedir}/.mvn/jvm.config
dukungan.Kemudian Anda dapat menggunakan opsi apa pun dari dukungan SimpleLogger SL4FJ dari Maven untuk mengonfigurasi semua penebang atau penebang tertentu. Sebagai contoh, berikut adalah cara membuat semua peringatan di
warn
level, kecuali untuk PMD yang dikonfigurasi untuk masukerror
:Lihat di sini untuk detail lebih lanjut tentang logging dengan Maven.
sumber
Mengubah
info
keerror
dalamsimplelogging.properties
file akan membantu dalam mencapai kebutuhan Anda.Ubah saja nilai dari baris di bawah ini
untuk
sumber
Saya perhatikan ketika menggunakan versi 2.20.1 dari plugin maven sunfire , semua peringatan dituliskan ke file dumpstream. misalnya
/myproject/target/surefire-reports/2017-11-11T23-02-19_850.dumpstream
sumber
Pergi ke
simplelogger.properties
dalam${MAVEN_HOME}/conf/logging/
dan mengatur properti berikut:Dan waspadalah:,
warn
tidakwarning
sumber