CodeGym /Java Course /Modul 3 /Appenders di Log4j

Appenders di Log4j

Modul 3
Level 5 , Pelajaran 5
Tersedia

Daftar pelengkap

Logger memungkinkan Anda untuk menyimpan data ke beberapa file sekaligus. Aliran data keluaran seperti itu disebut appenders (dari append). Ada beberapa tambahan standar, jadi kami hanya akan membahas yang paling populer:

Appenders Keterangan
1 Menghibur Mencetak data ke konsol
2 Mengajukan Mengeluarkan data ke file
3 File Bergulir Harian Mengeluarkan data ke file, file tersebut ditimpa secara siklis
4 asinkron Memungkinkan Anda menulis data ke appender lain secara asinkron
5 Stopkontak Menulis data ke soket tertentu
6 JDBC Menulis pesan ke database menggunakan protokol JDBC
7 JPA Menulis pesan ke database menggunakan protokol JPA
8 HTTP Mengirim acara melalui protokol HTTP ke server jarak jauh
9 SMTP Menyimpan pesan dalam buffer, lalu mengirimkannya sebagai email

Dokumentasi yang baik untuk semua appender ada di situs web resmi mereka

Dan di bawah ini kami akan mempertimbangkan yang paling populer dan sederhana.

ConsoleAppender

Appender paling sederhana adalahConsoleApender . Seperti yang mungkin sudah Anda duga, dia hanya menulis pesannya ke konsol. Ini memiliki beberapa parameter menarik bagi kami:

Atribut
1 nama Nama penambah
2 Saring Memungkinkan Anda memfilter beberapa pesan
3 tata letak Menentukan pemformatan pesan saat ditampilkan
4 target Menentukan di mana menulis: SYTEM_OUTatauSYSTEM_ERR

Sangat mudah untuk mengkonfigurasinya:


    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="warn" name="MyApp" packages="">
    <Appenders>
        <Console name="STDOUT" target="SYSTEM_OUT">
        <PatternLayout pattern="%m%n"/>
        </Console>
    </Appenders>
      <Loggers>
        <Root level="error">
        <AppenderRef ref="STDOUT"/>
        </Root>
    </Loggers>
    </Configuration>

FileAppender

Appender yang paling berguna adalahFileAppender . Tidak seperti ConsoleAppenderdia menulis pesannya ke file. Yang sangat berguna saat aplikasi Anda berjalan di suatu tempat di server. Ini memiliki banyak parameter, karena itu harus dapat menulis file pada sistem operasi yang berbeda.

Tetapi kami hanya akan mempertimbangkan yang paling populer di antara mereka.

1 nama Menentukan nama appender
2 Saring Memungkinkan Anda memfilter beberapa pesan
3 tata letak Menentukan pemformatan pesan saat ditampilkan
4 nama file Menentukan nama file tempat menulis pesan
5 menambahkan Jika true, maka pesan akan ditambahkan ke log lama, jika false- file log akan dibuat ulang setiap kali aplikasi dijalankan.
6 ukuran buffer Mengatur ukuran buffer dalam byte
7 instantFlush Jika true, maka setiap pesan sebenarnya langsung ditulis ke disk (tanpa buffer). Log mulai bekerja dengan lambat, tetapi ini menyelamatkan Anda dari kehilangan data saat program mogok.

Anda sudah tahu cara bekerja dengan baik dengan file, jadi pengaturan ini bukanlah hal baru bagi Anda. Mengonfigurasi logger semacam itu bahkan lebih mudah daripada logger konsol:


    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="warn" name="MyApp" packages="">
    <Appenders>
        <File name="MyFile" fileName="logs/app.log">
        <PatternLayout>
            <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
        </PatternLayout>
        </File>
    </Appenders>
    <Loggers>
        <Root level="error">
        <AppenderRef ref="MyFile"/>
        </Root>
    </Loggers>
    </Configuration>

RollingFileAppender

Appender yang paling populer adalahRollingFileAppender . Tidak seperti FileAppenderitu, ini memungkinkan Anda membagi log menjadi banyak file kecil. Ini sangat penting untuk log besar. Selain itu, ini memungkinkan Anda untuk menetapkan aturan tentang apa yang harus dilakukan dengan file lama setelah yang baru mulai ditulis.

Dan appender ini memiliki hampir seratus pengaturan berbeda. Anda dapat mengetahui lebih lanjut tentang mereka di tautan .

Pertimbangkan atribut paling populer dari appender ini:

Atribut
1 nama Menentukan nama appender
2 Saring Memungkinkan Anda memfilter beberapa pesan
3 tata letak Menentukan pemformatan pesan saat ditampilkan
4 nama file Menentukan nama file tempat menulis pesan
5 filePattern Menentukan pola penamaan untuk file arsip yang tidak lagi ditulis
6 kebijakan Menentukan kondisi saat file harus mulai ditimpa
7 strategi Menjelaskan apa yang harus dilakukan dengan file lama: arsip, riwayat penyimpanan berapa hari, dll.

Ini contoh yang bagus:


<Configuration status="warn" name="MyApp" packages="">
  <Appenders>
    <RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}-%i.log.gz">
    <PatternLayout>
        <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
    </PatternLayout>
    <Policies>
        <TimeBasedTriggeringPolicy />
        <SizeBasedTriggeringPolicy size="250 MB"/>
    </Policies>
    </RollingFile>
  </Appenders>
  <Loggers>
    <Root level="error">
    <AppenderRef ref="RollingFile"/>
    </Root>
  </Loggers>
</Configuration>

Parameter filePatternmenentukan template untuk arsip log lama. Ada juga dua, saat dipicu, file baru akan ditulis:

  • TimeBasedTriggeringPolicy– akan berfungsi jika hari baru dimulai (tanggal saat ini berubah)
  • SizeBasedTriggeringPolicy– akan berfungsi jika ukuran file mencapai 250MB
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION