1.1 பதிவுகள் அறிமுகம்

பதிவு என்பது நிகழ்ந்த நிகழ்வுகளின் பட்டியல். கிட்டத்தட்ட ஒரு நாட்டிகல் ஜர்னல் அல்லது டைரி போன்றது. சரி, அதன்படி, லாகர் என்பது நீங்கள் உள்நுழையக்கூடிய ஒரு பொருள். நிரலாக்கத்தில், கிட்டத்தட்ட எல்லாவற்றையும் பதிவு செய்வது வழக்கம். மேலும் ஜாவாவில், எல்லாமே அப்படித்தான் இன்னும் கொஞ்சம் கூட.

லாகர் ஜாவா

உண்மை என்னவென்றால், ஜாவா நிரல்கள் பெரும்பாலும் UI, கன்சோல் மற்றும் பல இல்லாத பெரிய சர்வர் பயன்பாடுகளாகும். அவர்கள் ஒரே நேரத்தில் ஆயிரக்கணக்கான பயனர்களிடமிருந்து கோரிக்கைகளைச் செயல்படுத்துகிறார்கள் மற்றும் பெரும்பாலும் பல்வேறு பிழைகள் ஏற்படுகின்றன. குறிப்பாக வெவ்வேறு நூல்கள் ஒருவருக்கொருவர் தலையிடத் தொடங்கும் போது.

மேலும், உண்மையில், அத்தகைய சூழ்நிலையில் அரிதாக மீண்டும் உருவாக்கப்படும் பிழைகள் மற்றும் தோல்விகளைக் கண்டறிவதற்கான ஒரே வழி, ஒவ்வொரு நூலிலும் நடக்கும் அனைத்தையும் பதிவு / கோப்பில் எழுதுவதுதான் .

பெரும்பாலும், அது அழைக்கப்பட்ட முறையின் அளவுருக்கள், அனைத்து இடைமறித்த பிழைகள் மற்றும் நிறைய இடைநிலை தகவல்கள் பற்றிய தகவல்கள் பதிவில் எழுதப்படுகின்றன. பதிவின் முழுமையும், நிகழ்வுகளின் வரிசையை மீட்டெடுப்பது மற்றும் தோல்வி அல்லது பிழைக்கான காரணங்களைக் கண்டறிவது எளிது.

ஆனால் பெரிய பதிவு, அதனுடன் வேலை செய்வது மிகவும் கடினம். சில நேரங்களில் பதிவுகள் ஒரு நாளைக்கு பல ஜிகாபைட்களை எட்டும். இது நன்று.

1.2 தோல்வியுற்ற பதிவுகள்

முதல் பதிவுகளாக, டெவலப்பர்கள் கன்சோலுக்கு வெறுமனே வெளியீட்டைப் பயன்படுத்தினர் . பயன்பாட்டு பிழைத்திருத்தத்தின் போது இதைச் செய்வது வசதியானது - அனைத்து முக்கியமான தகவல்களும் மாறி மதிப்புகளும் கன்சோலில் எழுதப்படும் போது. ஆனால் பயன்பாட்டின் இயல்பான செயல்பாட்டின் போது அத்தகைய பதிவு முற்றிலும் பொருந்தாது.

முதலாவதாக, பயன்பாடு கன்சோலில் ஏதாவது ஒன்றை வெளியிட விரும்பலாம், மேலும் புரோகிராமருக்கான சேவைத் தகவலைப் பார்க்க பயனர் விரும்பவில்லை.

இரண்டாவதாக, கன்சோல் இடையகத்தின் அளவு குறைவாக உள்ளது, நீங்கள் அங்கு அதிகம் எழுத முடியாது.

இறுதியாக, மூன்றாவதாக, நீண்ட காலமாக சேகரிக்கப்பட்ட நிரல் பிழைகள் பற்றிய தகவல்கள் நிரல் உருவாக்குநர்களுக்கு அனுப்பப்பட வேண்டும். இந்த தகவலை ஒரே நேரத்தில் ஒரு கோப்பில் எழுதுவது மிகவும் வசதியானது.

டெவலப்பர்கள் முதல் சிக்கலை விரைவாக தீர்த்தனர் - அவர்கள் மற்றொரு வெளியீட்டு ஸ்ட்ரீமைக் கொண்டு வந்தனர் - System.err. நீங்கள் அதற்கு செய்திகளை எழுதலாம், அவை ஒரு தனி நூலுக்கு அனுப்பப்படும், நிலையான கன்சோலுக்கு அல்ல.

ஒரு கோப்பில் எழுதுவதில் உள்ள சிக்கல் கூட தீர்க்கப்பட்டது:

// Define the file to which we will write the log
System.setErr(new PrintStream(new File("log.txt")));
// Display messages
System.err.println("Message 1");
System.err.println("Message 2");
// Display an error message
try {
    throw new Exception("Error message");
} catch (Exception e) {
    e.printStackTrace();
}

ஆனால் இந்த வடிவத்தில் கூட, அது முழு சிக்கலையும் தீர்க்கவில்லை, எனவே ஒரு கோப்பில் பதிவு செய்திகளை எழுதும் ஒரு சிறப்பு நூலகத்தை உருவாக்க முடிவு செய்யப்பட்டது. அவர் அதை ஒரு புத்திசாலித்தனமான முறையில் செய்தார் மற்றும் பதிவு செய்யப்பட்ட நிகழ்வுகள் மற்றும் தரவுகளுக்கான வடிப்பான்களை உள்ளமைக்க நெகிழ்வுத்தன்மையை அனுமதித்தார்.

முழு பதிவு செயல்முறை, உண்மையில், மூன்று பகுதிகளைக் கொண்டுள்ளது:

  • முதல் பகுதி தகவல் சேகரிப்பு .
  • இரண்டாவது பகுதி சேகரிக்கப்பட்ட தகவல்களை வடிகட்டுதல் ஆகும்.
  • மூன்றாவது பகுதி தேர்ந்தெடுக்கப்பட்ட தகவலின் பதிவு ஆகும்.

1.3 log4j லாகருக்கு அறிமுகம்

ஜாவா சமூகத்தில் முதல் பிரபலமான லாகர் log4j. திட்டத்தில் அதைச் சேர்ப்பது மிகவும் எளிது, இதற்காக நீங்கள் உங்கள் pom.xml இல் இரண்டு வரிகளைச் சேர்க்க வேண்டும்.

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>2.2.17</version>
</dependency>

அத்தகைய லாக்கருடன் உங்கள் நிரலின் தொடர்பு இப்படி இருக்கும்:

class Manager {
   private static final Logger logger = LoggerFactory.getLogger(Manager.class);

   public boolean processTask(Task task) {
        logger.debug("processTask id = " + task.getId());
        try {
            task.start();
            task.progress();
            task.complete();
            return true;
        } catch (Exception e) {
            logger.error("Unknown error", e);
            return false;
        }
    }
}

இங்கே மூன்று விஷயங்கள் நடக்கின்றன:

பொருளின் உருவாக்கம் பச்சை நிறத்தில் சிறப்பிக்கப்படுகிறது Logger . அதனுடன் வசதியான மேலும் வேலை செய்ய அதன் பொருள் நிலையான மாறியில் சேமிக்கப்படுகிறது. மேலும் getLogger()தகவல் சேகரிக்கப்படும் வகுப்பைப் பற்றிய தகவல் முறைக்கு அனுப்பப்படுகிறது.

பிழைத்திருத்தத்தின் போது மட்டுமே மதிப்பின் தகவலை பதிவு செய்யும் இடத்தில் நீல நிறத்தில் முன்னிலைப்படுத்தப்பட்ட கோடு உள்ளது . இதற்காக, ஒரு சிறப்பு முறை பயன்படுத்தப்படுகிறது -debug()

இறுதியாக , பதிவில் எழுந்துள்ள விதிவிலக்கை நாம் சேமிக்கும் வரி சிவப்பு நிறத்தில் முன்னிலைப்படுத்தப்பட்டுள்ளது . விதிவிலக்குகள் சாத்தியமான பிழைகள், எனவே error().