konvensyen log
1. [Mandatori] API dalam sistem log (Log 4 j, Logback) tidak boleh digunakan secara langsung dalam aplikasi Sebaliknya, API dalam rangka kerja log SLF 4 J harus digunakan mod fasad adalah kondusif untuk penyelenggaraan dan pelbagai aspek kaedah pemprosesan log kelas disatukan. import org.slf4j.Logger;
import org.slf4j.LoggerFactory; private static final Logger logger = LoggerFactory.getLogger(Abc.class);
2. [Mandatori] Adalah disyorkan untuk menyimpan fail log sekurang-kurangnya 15 hari, kerana beberapa pengecualian mempunyai ciri kekerapan kejadian "mingguan".
3. [Mandatori] Kaedah penamaan log lanjutan dalam aplikasi (seperti pengurusan, pemantauan sementara, log akses, dll.):
appName _ logType _ logName . logType: jenis log, kategori yang disyorkan termasuk
stats / desc / monitor / visit, dsb. Nama log: perihalan log. Kelebihan penamaan jenis ini: anda boleh mengetahui melalui nama fail aplikasi apa yang dimiliki oleh fail log, jenis apa, dan tujuan apa Ia juga sesuai untuk pengelasan dan carian.
Contoh positif: Pantau pengecualian penukaran zon waktu secara berasingan dalam aplikasi mppserver, seperti: mppserver _ monitor _ timeZoneConvert
Penjelasan: untuk mengelaskan log dan log log hendaklah disimpan secara berasingan untuk kemudahan Ia juga memudahkan pembangun untuk melihat dan memantau sistem dengan tepat pada masanya melalui log.
4. [Wajib] Untuk output log tahap jejak / nyahpepijat / maklumat, anda mesti menggunakan format output bersyarat atau gunakan kaedah pemegang tempat.
Penerangan: penyahpepijat . " Memproses perdagangan dengan id : " + id + " simbol : " + simbol);
Jika tahap log diberi amaran, log di atas tidak akan dicetak, tetapi penyambungan rentetan operasi akan dilakukan , jika simbol ialah objek, akan melaksanakan kaedah toString(), yang membazirkan sumber sistem Selepas melakukan operasi di atas, log akhir tidak dicetak.
Positive Contoh: (keadaan)
if (logger.isDebugEnabled()) { logger.debug("Processing trade with id: " + id + " symbol: " + symbol); }
positive Contoh: (placeholder)
logger.debug("Processing trade with id: {} symbol : {} ", id, symbol);e
5 aditiviti = palsu.
Contoh positif:<logger name="com.taobao.dubbo.config" additivity="false">
6 dan maklumat timbunan pengecualian. Jika tidak diproses, maka buanglah
.
Contoh positif: logger.error(pelbagai parameter atau objek keString + "_" + e.getMessage(), e);
7. [Disyorkan] Anda boleh menggunakan tahap log amaran untuk merekod ralat parameter input pengguna untuk mengelakkan pengguna mengalami kerugian apabila mereka mengadu. Beri perhatian kepada tahap keluaran log Tahap ralat hanya merekodkan maklumat ralat penting seperti ralat logik sistem dan pengecualian. Jika ia tidak benar-benar perlu, sila jangan masukkan tahap ralat dalam senario ini.
8 [Disyorkan] Rekod log dengan teliti. Dilarang mengeluarkan log nyahpepijat dalam persekitaran pengeluaran secara selektif mengeluarkan log maklumat jika anda menggunakan amaran untuk merekod maklumat tingkah laku perniagaan apabila ia mula-mula dilancarkan, anda mesti memberi perhatian kepada jumlah keluaran log untuk mengelakkan cakera pelayan pecah; ingat untuk memadam log pemerhatian ini tepat pada masanya.
Nota: Menghasilkan sejumlah besar log tidak sah tidak kondusif untuk peningkatan prestasi sistem dan tidak kondusif untuk mengesan titik ralat dengan cepat. Apabila merakam log, sila fikir: Adakah sesiapa yang benar-benar membaca log ini? Apa yang boleh anda lakukan selepas melihat log ini? Bolehkah ia membawa manfaat kepada penyelesaian masalah?