परिशिष्टांची यादी

लॉगर तुम्हाला एकाच वेळी अनेक फाइल्समध्ये डेटा सेव्ह करण्याची परवानगी देतो. अशा आउटपुट डेटा प्रवाहांना परिशिष्ट (अपेंडमधून) म्हणतात. तेथे बरेच मानक परिशिष्ट आहेत, म्हणून आम्ही फक्त सर्वात लोकप्रिय समाविष्ट करू:

परिशिष्ट वर्णन
कन्सोल कन्सोलवर डेटा मुद्रित करते
2 फाइल फाईलमध्ये डेटा आउटपुट करते
3 डेलीरोलिंगफाइल फाइलमध्ये डेटा आउटपुट करते, फाइल चक्रीयपणे अधिलिखित केली जाते
4 Async तुम्हाला दुसर्‍या परिशिष्टावर अतुल्यकालिकपणे डेटा लिहिण्याची अनुमती देते
सॉकेट विशिष्ट सॉकेटवर डेटा लिहितो
6 जेडीबीसी JDBC प्रोटोकॉल वापरून डेटाबेसवर संदेश लिहितो
जेपीए JPA प्रोटोकॉल वापरून डेटाबेसवर संदेश लिहितो
8 HTTP रिमोट सर्व्हरवर HTTP प्रोटोकॉलद्वारे इव्हेंट पाठवते
SMTP संदेश बफरमध्ये संग्रहित करते आणि नंतर त्यांना ईमेल म्हणून पाठवते

सर्व परिशिष्टांसाठी चांगली कागदपत्रे त्यांच्या अधिकृत वेबसाइटवर आहेत

आणि खाली आम्ही त्यापैकी सर्वात लोकप्रिय आणि साधे विचार करू.

ConsoleAppender

सर्वात सोपा परिशिष्ट आहेConsoleApender . तुम्ही अंदाज केला असेल, तो फक्त त्याचे संदेश कन्सोलवर लिहितो. यात आमच्यासाठी अनेक मनोरंजक पॅरामीटर्स आहेत:

विशेषता
नाव परिशिष्टाचे नाव
2 फिल्टर तुम्हाला काही संदेश फिल्टर करण्याची अनुमती देते
3 मांडणी आउटपुट करताना संदेशांचे स्वरूपन निर्दिष्ट करते
4 लक्ष्य कुठे लिहायचे ते निर्दिष्ट करते: SYTEM_OUTकिंवाSYSTEM_ERR

ते कॉन्फिगर करणे खूप सोपे आहे:


    <?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 . उलट ConsoleAppenderतो त्याचे संदेश फाईलवर लिहितो. जेव्हा तुमचा अॅप्लिकेशन सर्व्हरवर कुठेतरी चालू असेल तेव्हा ते खूप उपयुक्त आहे. त्यात बरेच पॅरामीटर्स आहेत, कारण वेगवेगळ्या ऑपरेटिंग सिस्टीमवर फाइल्स लिहिण्यास सक्षम असणे आवश्यक आहे.

परंतु आम्ही त्यापैकी फक्त सर्वात लोकप्रिय विचार करू.

नाव परिशिष्टाचे नाव निर्दिष्ट करते
2 फिल्टर तुम्हाला काही संदेश फिल्टर करण्याची अनुमती देते
3 मांडणी आउटपुट करताना संदेशांचे स्वरूपन निर्दिष्ट करते
4 फाईलचे नाव संदेश कुठे लिहायचा ते फाइलचे नाव निर्दिष्ट करते
जोडणे जर true, नंतर संदेश जुन्या लॉगमध्ये जोडले जातील, जर false- लॉग फाइल प्रत्येक वेळी अनुप्रयोग सुरू झाल्यावर पुन्हा तयार केली जाईल.
6 बफरसाइज बफर आकार बाइट्स मध्ये सेट करते
तात्काळ फ्लश जर true, तर प्रत्येक संदेश प्रत्यक्षात लगेच डिस्कवर लिहिला जातो (बफरशिवाय). लॉग हळूहळू कार्य करण्यास सुरवात करतो, परंतु प्रोग्राम क्रॅश झाल्यावर हे डेटा गमावण्यापासून वाचवते.

फाइल्ससह चांगले कसे कार्य करावे हे तुम्हाला आधीच माहित आहे, त्यामुळे या सेटिंग्ज तुमच्यासाठी नवीन नाहीत. असा लॉगर कॉन्फिगर करणे कन्सोल लॉगरपेक्षा अगदी सोपे आहे:


    <?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 . याच्या विपरीत FileAppender, ते आपल्याला लॉगला अनेक लहान फायलींमध्ये विभाजित करण्यास अनुमती देते. मोठ्या लॉगसाठी हे खूप महत्वाचे आहे. याव्यतिरिक्त, नवीन फायली लिहिण्यास सुरुवात केल्यानंतर जुन्या फायलींचे काय करायचे याचे नियम सेट करण्याची परवानगी देते.

आणि या ऍपेंडरमध्ये जवळपास शंभर भिन्न सेटिंग्ज आहेत. आपण त्यांच्याबद्दल दुव्यावर अधिक शोधू शकता.

या परिशिष्टाच्या सर्वात लोकप्रिय गुणधर्मांचा विचार करा:

विशेषता
नाव परिशिष्टाचे नाव निर्दिष्ट करते
2 फिल्टर तुम्हाला काही संदेश फिल्टर करण्याची अनुमती देते
3 मांडणी आउटपुट करताना संदेशांचे स्वरूपन निर्दिष्ट करते
4 फाईलचे नाव संदेश कुठे लिहायचा ते फाइलचे नाव निर्दिष्ट करते
फाइल नमुना यापुढे लिहिलेल्या संग्रहण फायलींसाठी नामकरण नमुना निर्दिष्ट करते
6 धोरण फाईल ओव्हरराईट केव्हा सुरू व्हायची ते अट निर्दिष्ट करते
धोरण जुन्या फाइल्सचे काय करायचे याचे वर्णन करते: संग्रहण, इतिहास किती दिवस ठेवावा इ.

येथे एक चांगले उदाहरण आहे:


<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>

पॅरामीटर filePatternजुन्या लॉगच्या संग्रहणासाठी टेम्पलेट निर्दिष्ट करते. तेथे दोन देखील आहेत, ट्रिगर केल्यावर, एक नवीन फाइल लिहिली जाईल:

  • TimeBasedTriggeringPolicy- नवीन दिवस सुरू झाल्यास कार्य करेल (वर्तमान तारीख बदलली आहे)
  • SizeBasedTriggeringPolicy- फाइल आकार 250MB पर्यंत पोहोचल्यास कार्य करेल