Ini pertanyaan yang sangat sederhana, tetapi saya tidak dapat menemukan informasi.
(Mungkin pengetahuan saya tentang kerangka kerja Java sangat kurang)
Bagaimana saya bisa mengatur level logging dengan application.properties?
Dan mencatat lokasi file, dll?
logging
spring-boot
zeodtr
sumber
sumber
Settings
->Config Vars
aturlogging.level.com.yourpackage
ke level yang diinginkan (INFO, ERROR, DEBUG).Jawaban:
Pembaruan: Dimulai dengan Spring Boot v1.2.0.RELEASE, pengaturan dalam
application.properties
atauapplication.yml
memang berlaku. Lihat bagian Tingkat Log dari panduan referensi.Untuk versi Spring Boot sebelumnya, Anda tidak bisa. Anda hanya perlu menggunakan konfigurasi normal untuk kerangka logging Anda (log4j, logback) untuk itu. Tambahkan file konfigurasi yang sesuai (
log4j.xml
ataulogback.xml
) kesrc/main/resources
direktori dan konfigurasikan sesuai keinginan Anda.Anda dapat mengaktifkan debug logging dengan menentukan
--debug
saat memulai aplikasi dari baris perintah.Spring Boot juga menyediakan titik awal yang bagus untuk logback untuk mengkonfigurasi beberapa default, mewarnai dll. File base.xml yang dapat Anda sertakan dalam file logback.xml Anda. (Ini juga disarankan dari logback.xml default di Spring Boot.
sumber
application.properties
atauapplication.yml
memang berlaku, seperti dijawab oleh Richard (modulo:
atau=
masalah --- usus besar tampaknya bekerja untuk saya).Anda dapat melakukannya menggunakan properti aplikasi Anda.
logging.level.=ERROR
-> Setel level logging root ke kesalahan...
logging.level.=DEBUG
-> Setel level logging root ke DEBUGlogging.file=${java.io.tmpdir}/myapp.log
-> Setel path file log absolut ke TMPDIR / myapp.logSerangkaian aplikasi.properti yang waras tentang logging menggunakan profil adalah: properti aplikasi:
application-dev.properties:
Ketika Anda mengembangkan di dalam IDE favorit Anda, Anda hanya menambahkan
-Dspring.profiles.active=dev
argumen sebagai VM ke konfigurasi run / debug aplikasi Anda.Ini akan memberi Anda hanya kesalahan log in produksi dan debug logging selama pengembangan TANPA menulis output ke file log. Ini akan meningkatkan kinerja selama pengembangan (dan menghemat drive SSD beberapa jam operasi;)).
sumber
logging.level.:DEBUG
spring-boot 1.4.0
:logging.level.=DEBUG
akan menyebabkan aplikasi gagal untuk memulai, dan mendapatkan kesalahan:java.lang.ClassCircularityError: java/util/logging/LogRecord
logging.level.
hanyalah cara pintas sintaksis kenyamananlogging.level.root
, yang dapat lebih disukai sebagai (1) kurang rentan menjadi bingung dengan kesalahan ketik, (2) berpotensi lebih eksplisit, dan (3) bekerja dengan=
tanda penugasan, yang memberikan konsistensi lebih menyeluruh secara keseluruhan ke file konfigurasi.Cara yang tepat untuk mengatur level logging root adalah menggunakan properti
logging.level.root
. Lihat dokumentasi , yang telah diperbarui sejak pertanyaan ini awalnya ditanyakan.Contoh:
sumber
Misalkan aplikasi Anda memiliki nama paket sebagai
com.company.myproject
. Kemudian Anda dapat mengatur level logging untuk kelas di dalam proyek Anda seperti yang diberikan di bawah ini di file application.propertieslogging.level.org.springframework.web = DEBUG
danlogging.level.org.hibernate = DEBUG
akan mengatur level logging untuk kelas web framework Spring dan hanya Hibernate.Untuk mengatur penggunaan lokasi file logging
sumber
Jika Anda menggunakan Spring Boot maka Anda dapat langsung menambahkan properti berikut di application.properties file untuk mengatur level logging, menyesuaikan pola logging, dan menyimpan log dalam file eksternal.
Ini adalah level logging yang berbeda dan urutannya dari minimum << maksimum.
OFF << FATAL << ERROR << PERINGATAN << INFO << DEBUG << TRACE << SEMUA
Silakan lewati tautan ini untuk menyesuaikan log Anda dengan lebih jelas.
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html
sumber
Pastikan tip Dave Syer mendapatkan cinta, karena menambahkan
debug=true
ke application.properties memang akan memungkinkan debug logging.sumber
Jika Anda ingin menggunakan kerangka logging yang berbeda, log4j misalnya, saya menemukan pendekatan termudah adalah untuk menonaktifkan penebangan sendiri dan mengimplementasikan sendiri. Dengan begitu saya bisa mengkonfigurasi setiap loglevel dalam satu file, log4j.xml (dalam kasus saya) itu.
Untuk mencapai ini, Anda hanya perlu menambahkan baris-baris itu ke pom.xml Anda:
Anda mungkin sudah memiliki ketergantungan pertama dan hanya perlu dua lainnya. Harap dicatat, bahwa contoh ini hanya mencakup log4j.
Itu saja, sekarang Anda sudah siap untuk mengkonfigurasi logging untuk boot dalam file konfigurasi log4j Anda!
sumber
log4j.properties
.Anda dapat mencoba mengatur level log ke DEBUG itu akan menampilkan segalanya saat memulai aplikasi
sumber
Untuk catatan: dokumentasi resmi , seperti untuk Spring Boot v1.2.0.RELEASE dan Spring v4.1.3.RELEASE:
sumber
Jika Anda ingin mengatur lebih detail, silakan tambahkan nama file log config "logback.xml" atau "logback-spring.xml".
di file application.properties Anda, masukan seperti ini:
di loback-spring.xml, masukan seperti ini:
sumber
Jawaban yang ada sangat bagus. Saya hanya ingin berbagi dengan Anda fitur boot musim semi baru yang memungkinkan untuk grup log dan mengatur level logging pada seluruh grup.
Contoh dari dokumen:
Ini fitur bagus yang membawa lebih banyak fleksibilitas.
sumber
Dalam konfigurasi saya saat ini, saya telah mendefinisikannya di application.yaml seperti itu:
Saya menggunakan spring-boot: 2.2.0.RELEASE. Anda dapat menentukan paket apa saja yang harus memiliki tingkat TRACE seperti itu.
sumber
dalam proyek boot musim semi kita dapat menulis logging.level.root = PERINGATAN tetapi di sini masalahnya adalah, kita harus memulai kembali bahkan kita menambahkan dependensi devtools, dalam file properti jika kita memodifikasi nilai apa pun tidak akan dapat terdeteksi secara otomatis, karena keterbatasan ini saya jadi tahu solusi i, e kita dapat menambahkan aktuator di pom.xml dan melewati level logger seperti di bawah ini yang ditunjukkan pada klien tukang pos di url bar http: // localhost: 8080 / loggers / ROOT atau http: // localhost: 8080 / loggers / com .mycompany dan di dalam tubuh Anda dapat melewati format json seperti di bawah ini
sumber
Dalam kasus gerhana IDE dan proyek Anda adalah pakar, ingatlah untuk membersihkan dan membangun proyek untuk mencerminkan perubahan.
sumber
Dengan Springboot 2 Anda dapat mengatur Level logging root dengan Variabel Lingkungan seperti ini:
Atau Anda dapat mengatur pencatatan khusus untuk paket-paket seperti ini:
sumber
LOGGING_LEVEL_ROOT=DEBUG