Fail log SpringBoot
1. Apakah kegunaan log? bayangkan jika program melaporkan ralat dan tidak membenarkan anda membuka konsol untuk melihat log, bolehkah anda mencari punca ralat?
Bagi kami, tujuan utama log adalah untuk menyelesaikan masalah dan mencari masalah. Selain menemui dan mengesan masalah, kami juga boleh mencapai fungsi berikut melalui log:
Rekod log log masuk pengguna untuk memudahkan analisis sama ada pengguna log masuk secara normal atau berniat jahat memecahkan pengguna-
Rekodkan log operasi sistem untuk memudahkan pemulihan data dan cari pengendali Rekodkan masa pelaksanaan program untuk memudahkan pengoptimuman program pada masa hadapan untuk menyediakan sokongan data 2 Cara menggunakan log
Projek Spring Boot akan mempunyai output log secara lalai apabila ia dimulakan, seperti yang ditunjukkan di bawah:
Melalui maklumat di atas, kita boleh menemui:
Spring Boot mempunyai rangka kerja pengelogan terbina dalam Secara lalai, log keluaran tidak ditakrifkan oleh pembangun dan pencetakan, jadi bagaimanakah pembangun mentakrifkan log cetakan dalam program? Log dicetak pada konsol secara lalai, tetapi log konsol tidak boleh disimpan Bagaimana untuk menyimpan log secara kekal? 3. Pencetakan log tersuai
Langkah pelaksanaan untuk pembangun untuk menyesuaikan pencetakan log:
Dapatkan dalam Log program Gunakan sintaks yang berkaitan bagi objek log untuk mengeluarkan kandungan yang akan dicetak 3.1 Dapatkan objek log dalam program
private static final Logger log = LoggerFactory.getLogger(UserController.class);
Kilang log perlu lulus jenis setiap kelas, supaya kita boleh mengetahui kelas kepunyaan log, dan mengesan masalah dengan lebih mudah dan intuitif
Nota: Objek logger kepunyaan pakej org.slf4j, jangan mengimportnya Salah
3.2 Gunakan objek log untuk mencetak log
Terdapat banyak cara untuk mencetak objek log . Kita boleh menggunakan kaedah maklumat untuk mengeluarkan log,
@Controller
@ResponseBody
public class UserController {
private static final Logger log = LoggerFactory.getLogger(UserController.class);
@RequestMapping("/sayhi")
public void sayHi() {
log.trace("trace");
log.debug("debug");
log.info("info");
log.warn("warn");
log.error("error");
}
}
4. Tahap log
4.1 Apakah kegunaan tahap log?
Tahap log boleh membantu anda menapis maklumat penting Contohnya, jika anda menetapkan tahap log kepada ralat, anda hanya boleh melihat log ralat program dan log perniagaan Ia boleh diabaikan. Ini menjimatkan masa pembangun dalam penyaringan Tahap log boleh mengawal sama ada program perlu mencetak log dalam persekitaran yang berbeza Contohnya, dalam persekitaran pembangunan, kami memerlukan maklumat yang sangat terperinci dan dalam persekitaran pengeluaran, untuk mengekalkan prestasi dan keselamatan akan mengeluarkan sejumlah kecil log, dan keperluan tersebut boleh dicapai melalui tahap log 4.2 Pengelasan dan penggunaan tahap log
Tahap log terbahagi kepada:
jejak: jejak, bermakna sedikit, tahap paling rendah nyahpepijat: mencetak maklumat utama apabila penyahpepijatan diperlukan maklumat: maklumat cetakan biasa (peringkat log lalai) amaran: amaran: tidak menjejaskan penggunaan, tetapi isu yang memerlukan perhatian ralat: maklumat ralat, maklumat log ralat peringkat lebih tinggi maut: maut, peristiwa yang menyebabkan atur cara keluar dari pelaksanaan kerana kepada pengecualian kod Susunan peringkat log:
Semakin tinggi, semakin kurang maklumat diterima Jika amaran ditetapkan , hanya memberi amaran dan tahap di atas diterima
Tetapan tahap log
logging:
level:
root: error
Tahap output log lalai
Kosongkan log tetapan dalam fail konfigurasi dan perhatikan output konsol Tahap log
disimpulkan Tahap output log lalai ialah maklumat
Apabila terdapat tetapan tahap log tempatan dan peringkat log global , kemudian apabila mengakses log tempatan, log tempatan digunakan. Iaitu, keutamaan log tempatan adalah lebih tinggi daripada keutamaan log global
5 Kegigihan log
Log di atas adalah output pada konsol, tetapi dalam persekitaran pengeluaran kami. perlu Simpan log supaya anda boleh mengesan masalah selepas masalah berlaku Proses menyimpan log dipanggil kegigihan
Jika anda ingin mengekalkan tarikh, anda hanya perlu menentukan direktori storan log. dalam fail konfigurasi atau nyatakan log Simpan nama fail, dan Spring Boot akan menulis log konsol ke direktori atau fail yang sepadan
Konfigurasikan laluan simpan fail log:
logging:
file:
path: D:\rizhi
Laluan yang disimpan, yang mengandungi aksara melarikan diri Untuk tetapan aspek, kita boleh menggunakan
ini sebagai pemisah.
/
Jika anda berkeras untuk menggunakan pembatas di bawah Windows, kami perlu menggunakan
aksara melarikan diri untuk melarikan diri
配置日志文件的文件名:
logging:
file:
name: D:/rizhi/logger/spring.log
6. 更简单的日志输出–lombok
每次使用LoggerFactory.getLogger很繁琐,且每个类都添加一遍,也很麻烦。这里的lombok是一种更好的日志输出方式
添加lombok框架支持
使用@slf4j注解输出日志
6.1 添加 lombok 依赖
首先要安装一个插件:
然后再pom.xml页面右键、
最后重新添加依赖就可以了
6.2 输出日志
使用@Slf4j注解,在程序中使用log对象即可输入日志并且只能使用log对象才能输出,这是lombok提供的对象名
6.3 lombok原理解释
lombok 能够打印⽇志的密码就在 target ⽬录⾥⾯,target 为项⽬最终执⾏的代码,查看 target ⽬录我们可以发现:
这里的@Slf4j注解变成了一个对象。
下面是java程序的运行原理:
6.4 lombok更多注解说明
基本注解
注解 |
作用 |
@Getter |
自动添加get方法 |
@Setter |
自动添加set方法 |
@ToString |
自动添加toString方法 |
@EqualsAndHashCode |
自动添加equals和hasCode方法 |
@NoArgsConstructor |
自动添加无参构造方法 |
@AllArgsConstructor |
自动添加全属性构造方法,顺序按照属性的定义顺序 |
@NonNull |
属性不能为null |
@RequiredArgsConstructor |
自动添加必须属性的构造方法,final + @NonNull的属性为需 |
组合注解:
注解 |
作用 |
@Data |
@Getter+@Setter+EqualsAndHashCode+@RequiredArgsConstructor+@NoArgsConstructor |
日志注解
注解 |
作用 |
@Slf4j |
添加一个名为log的对象 |
Atas ialah kandungan terperinci Bagaimana untuk mendapatkan pemegang pada fail log SpringBoot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!