Saya memiliki situasi di mana saya ingin menulis semua log yang saya buat menjadi file teks.
Kami menggunakan java.util.logging.Logger API untuk menghasilkan log.
Saya mencoba:
private static Logger logger = Logger.getLogger(className.class.getName());
FileHandler fh;
fh = new FileHandler("C:/className.log");
logger.addHandler(fh);
Tapi tetap mendapatkan log saya di konsol saja ....
Jawaban:
Coba sampel ini. Ini bekerja untuk saya.
Menghasilkan output di MyLogFile.log
Edit:
Untuk menghapus pengendali konsol, gunakan
karena ConsoleHandler terdaftar dengan induk logger dari mana semua logger berasal.
sumber
FileHandler(path, true)
untuk membuat log ditambahkan ke file log yang ada.Pertama, di mana Anda mendefinisikan logger Anda dan dari metode class \ apa yang mencoba menyebutnya? Ada contoh kerja, dipanggang segar:
Dalam kode Anda, Anda lupa mendefinisikan formatter, jika Anda memerlukan yang sederhana, Anda dapat melakukannya seperti yang saya sebutkan di atas, tetapi ada opsi lain, Anda dapat memformatnya sendiri, ada contoh (cukup masukkan saja, bukan baris ini fh .setFormatter (SimpleFormatter baru ()) kode berikut):
Atau modifikasi apa pun yang Anda suka. Semoga ini bisa membantu.
sumber
Lokasi file log dapat dikontrol melalui file logging.properties. Dan itu dapat dilewatkan sebagai parameter JVM ex:
java -Djava.util.logging.config.file=/scratch/user/config/logging.properties
Detail: https://docs.oracle.com/cd/E23549_01/doc.1111/e14568/handler.htm
Mengkonfigurasi File handler
Untuk mengirim log ke file, tambahkan FileHandler ke properti handler di file logging.properties. Ini akan memungkinkan pencatatan file secara global.
handlers= java.util.logging.FileHandler
Konfigurasikan penangan dengan mengatur properti berikut:java.util.logging.FileHandler.pattern menentukan lokasi dan pola file output. Pengaturan default adalah direktori home Anda.
java.util.logging.FileHandler.limit menentukan, dalam byte, jumlah maksimum yang ditulis logger ke salah satu file.
java.util.logging.FileHandler.count menentukan berapa banyak file output untuk di-siklus.
java.util.logging.FileHandler.formatter menentukan kelas formatter java.util.logging yang digunakan oleh kelas penangan file untuk memformat pesan log. SimpleFormatter menulis ringkasan singkat dari catatan log.
Untuk menginstruksikan java menggunakan file konfigurasi ini alih-alih $ JDK_HOME / jre / lib / logging.properties:
sumber
Pustaka yang bagus tersedia bernama log4j untuk Java .
Ini akan menyediakan banyak fitur. Pergi melalui tautan dan Anda akan menemukan solusi Anda.
sumber
Mungkin ini yang kamu butuhkan ...
sumber
sumber
sumber
Semoga orang menemukan ini bermanfaat
sumber
Ini kelas logging saya berdasarkan jawaban yang diterima :
sumber
Berikut adalah contoh cara menimpa konfigurasi Logger dari kode. Tidak memerlukan file konfigurasi eksternal ..
FileLoggerTest.java:
MyLogHandler.java
sumber