Tampaknya ini telah dipromosikan ke elemen konfigurasi: <datePattern value = "dd.MM.yyyy'.log '" /> Cheers!
longda
3
@mstaessen <preserveLogFileNameExtension value="true" />adalah sintaks yang benar dan ini adalah jawaban yang bagus. Bagaimana kerugian itu terjadi, bolehkah saya bertanya?
Larry B
1
Jika saya mengingatnya dengan benar, hasilnya seperti ini. Saat startup, log4net akan menghasilkan nama file pertama dalam urutan bergulir. Ini akan mendeteksi bahwa file itu sudah ada dan kemudian akan memutuskan untuk menggulung ke file kedua, tetapi ketika file itu juga sudah ada, itu tidak memutuskan untuk menggulung tetapi malah membersihkannya dan menimpa semua yang ada di file log kedua itu. Ini berjalan sama sekali tanpa disadari sampai Anda membutuhkan log dari jangka waktu yang dibersihkan ...
Saya pikir Anda harus menyoroti poin utama dari parameter apa untuk menyelesaikan masalah seperti yang dilakukan @Mun. Namun, saya juga mendukung jawaban Anda.
RDeveloper
1
Itu adalah elemen datePattern, dalam hubungannya dengan elemen staticLogFileName (dan perhatikan atribut nilai untuk elemen file) yang bekerja untuk saya
Michhes
Jawaban lengkapnya!
Nagesh
32
Untuk RollingLogFileAppender, Anda juga membutuhkan elemen dan nilai berikut:
Ini berfungsi, tetapi menambahkan tanggal setelah ekstensi file. Misalnya saya mendapatkan file log seperti Error.log20111104 - Adakah yang tahu cara memformat nama file sedikit lebih baik?
untuk apa staticLogFileName digunakan? Saya hanya ingin file log digulung menjadi nama baru setelah hari berakhir. Saya ingin menggunakan monitor log yang melihat spesifik setiap waktu.
Minggu
22
Menggunakan Log4Net 1.2.13 kami menggunakan pengaturan konfigurasi berikut untuk memungkinkan tanggal waktu dalam nama file.
Jika ukuran file menjadi perhatian, berikut ini memungkinkan 500 file berukuran 5MB hingga hari baru muncul. CountDirection memungkinkan penomoran Ascending atau Descending dari file yang tidak lagi terkini.
Masalah dengan kombinasi parameter lainnya adalah file terbaru tidak memiliki pola waktu, atau pola waktu ditambahkan .log20171215yang membuat waktu file baru (dan jenis file baru ! ) Setiap hari - atau kedua masalah muncul.
Sekarang dengan pengaturan ini Anda mendapatkan file seperti ini:
LOG4NET_Sample_Activity-20171215.log
itulah yang saya inginkan.
Untuk meringkas:
Jangan letakkan pola tanggal di <file value=...atribut, cukup tentukan di datePattern.
Pastikan Anda menyetel atribut preserveLogFileNameExtensionnilai ketrue .
Pastikan Anda menyetel staticLogFileNamenilainya kefalse .
kenapa ada %date{yyyyMM}dan value="ddMMyyyy" ? yang mana pola tanggal efektif?
Allan Ruin
Saya pikir datePattern adalah untuk nama file tetapi% date {yyyyMM} adalah untuk direktori induk (saya menginginkannya seperti itu)
Fourat
Atribut datePattern menyetel periode bergulir untuk Date rollingStyle. Lihat logging.apache.org/log4net/release/config-examples.html di bawah RollingFileAppender. "Misalnya, pola tanggal" yyyyMMdd "akan bergulir setiap hari. Lihat System.Globalization.DateTimeFormatInfo untuk daftar pola yang tersedia."
Ryan Buddicom
@rbuddicom ya tetapi pertanyaannya adalah tentang bagaimana cara mempertahankan ekstensi file.
Fourat
Aku tahu, Allan mempertanyakan tujuan dari 'value = "ddMMyyyy"'. Komentar Anda "Saya pikir datePattern adalah untuk nama file" salah dalam hal itu.
Ryan Buddicom
0
Bagian konfigurasi yang diperluas dalam respons sebelumnya dengan
......<rollingStyle value="Composite"/>......
karya yang terdaftar tapi saya tidak harus menggunakan
<staticLogFileName value="false"/>
. Saya pikir RollingAppender harus (secara logis) mengabaikan pengaturan itu karena menurut definisi file akan dibangun kembali setiap hari ketika aplikasi restart / digunakan kembali. Mungkin itu penting untuk rollover segera SETIAP kali aplikasi dimulai.
Bagi saya, ini tidak akan berfungsi tanpa <staticLogFileName value = "false" />
nurettin
saya juga, harus mengatur staticLogFileName ke false jika tidak maka tidak akan masuk
oonyalo
0
Saya memindahkan konfigurasi ke kode untuk mengaktifkan modifikasi mudah dari CI menggunakan variabel sistem. Saya menggunakan kode ini untuk nama file dan hasilnya adalah 'Log_03-23-2020.log'
Jawaban:
Di file konfigurasi Log4net Anda, gunakan parameter berikut dengan RollingFileAppender:
sumber
<preserveLogFileNameExtension value="true" />
adalah sintaks yang benar dan ini adalah jawaban yang bagus. Bagaimana kerugian itu terjadi, bolehkah saya bertanya?sumber
Untuk RollingLogFileAppender, Anda juga membutuhkan elemen dan nilai berikut:
sumber
Menggunakan Log4Net 1.2.13 kami menggunakan pengaturan konfigurasi berikut untuk memungkinkan tanggal waktu dalam nama file.
<file type="log4net.Util.PatternString" value="E:/logname-%utcdate{yyyy-MM-dd}.txt" />
Yang akan menyediakan file dalam konvensi berikut:
logname-2015-04-17.txt
Dengan ini biasanya yang terbaik adalah memiliki yang berikut untuk memastikan Anda memegang 1 log per hari.
Jika ukuran file menjadi perhatian, berikut ini memungkinkan 500 file berukuran 5MB hingga hari baru muncul. CountDirection memungkinkan penomoran Ascending atau Descending dari file yang tidak lagi terkini.
sumber
Saya akhirnya menggunakan (perhatikan nama file '.log' dan tanda kutip tunggal di sekitar 'myfilename_'):
Ini memberi saya:
sumber
preserveLogFileNameExtension
tidak berfungsi untuk versi log4net sebelumnya (mis. v1.2.10) seperti yang dijelaskan di siniSaya sudah mencoba semua jawaban, tapi selalu ada yang kurang dan tidak berfungsi seperti yang diharapkan.
Kemudian saya bereksperimen sedikit dengan petunjuk yang diberikan di setiap jawaban dan berhasil dengan pengaturan berikut:
Masalah dengan kombinasi parameter lainnya adalah file terbaru tidak memiliki pola waktu, atau pola waktu ditambahkan
.log20171215
yang membuat waktu file baru (dan jenis file baru ! ) Setiap hari - atau kedua masalah muncul.Sekarang dengan pengaturan ini Anda mendapatkan file seperti ini:
LOG4NET_Sample_Activity-20171215.log
itulah yang saya inginkan.
Untuk meringkas:
Jangan letakkan pola tanggal di
<file value=...
atribut, cukup tentukan didatePattern
.Pastikan Anda menyetel atribut
preserveLogFileNameExtension
nilai ketrue
.Pastikan Anda menyetel
staticLogFileName
nilainya kefalse
.Mengatur
rollingStyle
atribut nilai untukDate
.sumber
Untuk mempertahankan ekstensi file:
sumber
%date{yyyyMM}
danvalue="ddMMyyyy"
? yang mana pola tanggal efektif?Bagian konfigurasi yang diperluas dalam respons sebelumnya dengan
karya yang terdaftar tapi saya tidak harus menggunakan
. Saya pikir RollingAppender harus (secara logis) mengabaikan pengaturan itu karena menurut definisi file akan dibangun kembali setiap hari ketika aplikasi restart / digunakan kembali. Mungkin itu penting untuk rollover segera SETIAP kali aplikasi dimulai.
sumber
Saya memindahkan konfigurasi ke kode untuk mengaktifkan modifikasi mudah dari CI menggunakan variabel sistem. Saya menggunakan kode ini untuk nama file dan hasilnya adalah 'Log_03-23-2020.log'
sumber