Rumah  >  Artikel  >  Java  >  Menggunakan Log4j2 untuk pengurusan log dalam pembangunan API Java

Menggunakan Log4j2 untuk pengurusan log dalam pembangunan API Java

王林
王林asal
2023-06-18 17:28:591765semak imbas

API Java ialah bahasa pengaturcaraan yang digunakan secara meluas Oleh kerana kesederhanaan, kebolehpercayaan, merentas platform dan kelebihan lain, ia telah menjadi bahasa arus perdana dalam bidang pembangunan perusahaan. Dalam pembangunan API Java, pengurusan log adalah bahagian penting. Semasa proses pembangunan, kami biasanya menggunakan Log4j2 (versi Log4j yang dinaik taraf) untuk mengurus log kerana ia mempunyai kelebihan berikut:

  1. Kecekapan tinggi: Log4j2 menggunakan pencetakan log tak segerak, supaya output log tidak mempunyai IO blocking , dengan itu memastikan pelaksanaan yang cekap bagi alat binaan.
  2. Mudah digunakan: Log4j2 menyediakan fungsi konfigurasi fleksibel yang boleh mengubah suai tahap log, format output dan lokasi output secara dinamik tanpa memulakan semula aplikasi.
  3. Antara muka yang kaya: Log4j2 menyediakan pelbagai API log, termasuk SLF4J, Pengelogan Apache Commons, dll., yang boleh dipilih mengikut keperluan sebenar.

Artikel ini akan memperkenalkan cara menggunakan Log4j2 untuk pengurusan log semasa pembangunan API Java.

Langkah 1: Import kebergantungan berkaitan Log4j2

Mula-mula, kita perlu mengimport kebergantungan Log4j2 ke dalam projek.

Kebergantungan Maven:

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.14.1</version>
</dependency>

Kebergantungan Gradle:

implementation 'org.apache.logging.log4j:log4j-core:2.14.1'

Langkah 2: Konfigurasikan Log4j2

Sebelum menggunakan Log4j2 untuk pengurusan log, kita perlu mengkonfigurasinya terlebih dahulu . Log4j2 menyokong pelbagai kaedah konfigurasi, termasuk XML, JSON, YAML atau Properties, dsb.

Berikut ialah contoh fail konfigurasi Log4j2 asas:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
        <RollingFile name="RollingFile" fileName="logs/app.log"
                     filePattern="logs/app-%d{yyyy-MM-dd}-%i.log.gz">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] %-5level %logger{36} - %msg%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="10MB" />
            </Policies>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="RollingFile"/>
        </Root>
    </Loggers>
</Configuration>

Fail konfigurasi ini mentakrifkan dua Pelengkap: Console dan RollingFile.

Console Appender mengeluarkan log ke konsol dan menggunakan PatternLayout untuk memformat kandungan output.

RollingFile Appender mengeluarkan log ke fail dan menggunakan PatternLayout untuk memformat kandungan output. Di samping itu, ia juga mengkonfigurasikan dua Polisi: Dasar Pencetusan Masa dan Polisi Pencetusan Saiz.

TimeBasedTriggeringPolicy bermaksud menggulung fail log mengikut masa. Dalam contoh ini, ini bermakna mencipta fail log baharu setiap hari dan memampatkan fail log sebelumnya.

SizeBasedTriggeringPolicy bermaksud menggulung fail log mengikut saiz fail. Dalam contoh ini, ini bermakna apabila saiz fail log mencapai 10 MB, fail log baharu akan dibuat.

Di atas hanyalah konfigurasi Log4j2 berdasarkan contoh mudah Dalam situasi sebenar, kita perlu mengkonfigurasinya mengikut keperluan kita.

Langkah 3: Gunakan Log4j2 untuk pengurusan log

Selepas mengkonfigurasi Log4j2, kita perlu menggunakannya dalam kod untuk pengurusan log. Berikut ialah contoh asas pengurusan log Log4j2:

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class App {

    private static final Logger logger = LogManager.getLogger(App.class);

    public static void main(String[] args) {
        logger.info("Hello, Log4j2!");
    }
}

Dalam kod di atas, kami mula-mula mengimport kelas Logger yang berkaitan dengan Log4j2 dan mendapatkan contoh Logger melalui LogManager.

Kemudian, dalam kaedah utama, kami menggunakan logger untuk mengeluarkan mesej log tahap maklumat.

Melalui operasi di atas, kita boleh menggunakan Log4j2 untuk pengurusan log.

Ringkasan

Di atas ialah keseluruhan proses menggunakan Log4j2 untuk pengurusan log dalam pembangunan API Java. Untuk menggunakan Log4j2 untuk pengurusan log, kita perlu mengkonfigurasinya dahulu, membuat instantiate kelas Logger dalam kod dan menggunakannya untuk pengurusan log.

Dengan menggunakan Log4j2, kami boleh melaksanakan pengurusan log dengan cekap, fleksibel dan kaya, yang membawa kemudahan besar untuk penyahpepijatan dan penyelesaian masalah semasa proses pembangunan Java API.

Atas ialah kandungan terperinci Menggunakan Log4j2 untuk pengurusan log dalam pembangunan API Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn