Dhaptar appenders

Logger ngidini sampeyan nyimpen data menyang sawetara file sekaligus. Aliran data output kasebut diarani appenders (saka append). Ana sawetara appenders standar, mula kita mung bakal nutupi sing paling populer:

Lampiran Katrangan
1 Konsol Prints data menyang console
2 berkas Output data menyang file
3 DailyRollingFile Outputs data menyang file, file wis cyclically timpa
4 Async Ngidini sampeyan nulis data menyang appender liyane kanthi asinkron
5 Soket Nulis data menyang soket tartamtu
6 JDBC Nulis pesen menyang database nggunakake protokol JDBC
7 JPA Nulis pesen menyang database nggunakake protokol JPA
8 http Ngirim acara liwat protokol HTTP menyang server remot
9 SMTP Nyimpen pesen ing buffer, banjur dikirim minangka email

Dokumentasi sing apik kanggo kabeh appenders ana ing situs web resmi

Lan ing ngisor iki kita bakal nimbang sing paling populer lan prasaja.

ConsoleAppender

Appender sing paling gampang yaikuConsoleApender . Kaya sing wis sampeyan duga, dheweke mung nulis pesen menyang konsol. Nduwe sawetara paramèter sing menarik kanggo kita:

Atribut
1 jeneng Jeneng appender
2 nyaring Ngidini sampeyan nyaring sawetara pesen
3 tata letak Nemtokake format pesen nalika output
4 target Nemtokake ngendi kanggo nulis: SYTEM_OUTutawaSYSTEM_ERR

Gampang banget kanggo ngatur:


    <?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 sing paling migunani yaikuFileAppender . Ora kaya ConsoleAppenderdheweke nulis pesen menyang file. Sing migunani banget nalika aplikasi sampeyan mlaku ing endi wae ing server. Wis akeh paramèter, amarga iku kudu bisa kanggo nulis file ing sistem operasi beda.

Nanging kita bakal nimbang mung sing paling populer.

1 jeneng Nemtokake jeneng appender
2 nyaring Ngidini sampeyan nyaring sawetara pesen
3 tata letak Nemtokake format pesen nalika output
4 jeneng berkas Nemtokake jeneng file kanggo nulis pesen
5 nambahi Yen true, banjur pesen bakal ditambahake menyang log lawas, yen false- file log bakal digawe maneh saben aplikasi diwiwiti.
6 bufferSize Nyetel ukuran buffer ing bita
7 immediateFlush Yen true, banjur saben pesen bener ditulis menyang disk langsung (tanpa buffer). Log wiwit mlaku alon-alon, nanging iki nylametake sampeyan saka kelangan data nalika program nabrak.

Sampeyan wis ngerti cara nggarap file kanthi apik, mula setelan kasebut ora anyar kanggo sampeyan. Ngonfigurasi logger kuwi malah luwih gampang tinimbang console logger:


    <?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 sing paling populer yaikuRollingFileAppender . Boten kados FileAppenderiku, iku ngijini sampeyan kanggo pamisah log menyang akeh file cilik. Iki penting banget kanggo log gedhe. Kajaba iku, ngidini sampeyan nyetel aturan apa sing kudu dilakoni karo file lawas sawise sing anyar wis diwiwiti.

Lan appender iki wis meh satus setelan beda. Sampeyan bisa ngerteni luwih akeh babagan dheweke ing link .

Coba atribut paling populer saka appender iki:

Atribut
1 jeneng Nemtokake jeneng appender
2 nyaring Ngidini sampeyan nyaring sawetara pesen
3 tata letak Nemtokake format pesen nalika output
4 jeneng berkas Nemtokake jeneng file kanggo nulis pesen
5 filePola Nemtokake pola jeneng kanggo file arsip sing ora ditulis maneh
6 kawicaksanan Nemtokake kondisi nalika file kudu diwiwiti ditindih
7 strategi Njlèntrèhaké apa sing kudu dilakoni karo file lawas: arsip, riwayat nganti pirang-pirang dina disimpen, lsp.

Punika conto ingkang sae:


<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 kasebut filePatternnemtokake cithakan kanggo arsip log lawas. Ana uga loro, nalika dipicu, file anyar bakal ditulis:

  • TimeBasedTriggeringPolicy- bakal bisa digunakake yen dina anyar diwiwiti (tanggal saiki ganti)
  • SizeBasedTriggeringPolicy- bakal bisa digunakake yen ukuran file tekan 250MB