Rumah  >  Artikel  >  Java  >  Bagaimana untuk mendapatkan pemegang pada fail log SpringBoot

Bagaimana untuk mendapatkan pemegang pada fail log SpringBoot

WBOY
WBOYke hadapan
2023-05-12 11:46:051247semak imbas

    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:

    Bagaimana untuk mendapatkan pemegang pada fail log SpringBootMelalui 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

    Bagaimana untuk mendapatkan pemegang pada fail log SpringBoot3.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");
        }
    }

    Bagaimana untuk mendapatkan pemegang pada fail log SpringBoot4. 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:

    Bagaimana untuk mendapatkan pemegang pada fail log SpringBootSemakin 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 依赖

    首先要安装一个插件:

    Bagaimana untuk mendapatkan pemegang pada fail log SpringBoot

    然后再pom.xml页面右键、

    Bagaimana untuk mendapatkan pemegang pada fail log SpringBoot

    Bagaimana untuk mendapatkan pemegang pada fail log SpringBoot

    Bagaimana untuk mendapatkan pemegang pada fail log SpringBoot

    最后重新添加依赖就可以了

    Bagaimana untuk mendapatkan pemegang pada fail log SpringBoot

    6.2 输出日志

    使用@Slf4j注解,在程序中使用log对象即可输入日志并且只能使用log对象才能输出,这是lombok提供的对象名

    6.3 lombok原理解释

    lombok 能够打印⽇志的密码就在 target ⽬录⾥⾯,target 为项⽬最终执⾏的代码,查看 target ⽬录我们可以发现:

    Bagaimana untuk mendapatkan pemegang pada fail log SpringBoot

    这里的@Slf4j注解变成了一个对象。

    下面是java程序的运行原理:

    Bagaimana untuk mendapatkan pemegang pada fail log SpringBoot

    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!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam