3.1 நிகழ்வு நிலைகளின் பட்டியல்
பதிவுசெய்தல் என்பது நிரல் இயங்கும் போது ஏற்படும் நிகழ்வுகளை பதிவு செய்யும் செயல்முறையாகும். ஒரு புரோகிராமராக உங்கள் கடமை என்னவென்றால் record everything important
, production
விசித்திரமான மற்றும் / அல்லது கடுமையான பிழைகள் இருக்கும்போது, இந்த பதிவுகளைத் தவிர வேறு எதுவும் உங்களிடம் இருக்காது.
எந்தவொரு பிழையும் அதைப் பற்றிய அனைத்து தகவல்களையும், அழைப்புகளின் அனைத்து வரலாற்றையும் நீங்கள் பெற்றிருந்தால், அது பல மடங்கு வேகமாக நீக்கப்படும். ஆனால் இங்கிருந்து ஒரு எளிய முடிவு பின்வருமாறு - பொதுவாக எல்லாவற்றையும் பதிவு செய்ய: அனைத்து முறைகளின் அழைப்புகள், அனைத்து அளவுருக்களின் மதிப்புகள்.
இதுவும் ஒரு விருப்பமல்ல - மிக அதிகமான தகவல்கள் மிகக் குறைவானவை போலவே மோசமானவை. நமக்கு ஸ்மார்ட் லாக்கிங் தேவை. மனிதனுக்காக மனிதனால் உருவாக்கப்பட்டது. பதிவுசெய்தல் பற்றிய முதல் உண்மைக்கு இங்கே வருகிறோம் - பதிவில் உள்ள அனைத்து உள்ளீடுகளும் அவை உருவாக்கும் நேரத்தில் கூட வகைகளாகப் பிரிக்கப்படுகின்றன.

ப்ரோக்ராமர், ஒரு நிகழ்வை பதிவில் எழுதும்போது, இந்தத் தகவல் எவ்வளவு முக்கியமானது என்பதைத் தானே தீர்மானிக்க வேண்டும். நிகழ்வின் தீவிரத்தன்மை செய்தியின் ஆசிரியரால் தேர்ந்தெடுக்கப்படுகிறது. log4j
பதிவு செய்யப்பட்ட தகவல் முக்கியத்துவத்தின் 5 நிலைகள் உள்ளன :
DEBUG
INFO
WARN
ERROR
FATAL
கீழே நாம் அவர்களைப் பற்றி இன்னும் விரிவாகக் கூறுவோம்.
3.2 பிழைத்திருத்தம்
நிலை DEBUG
மிக முக்கியமானதாகக் கருதப்படுகிறது. இந்த அளவிலான முக்கியத்துவத்துடன் பதிவில் எழுதப்பட்ட தகவல்கள் பயன்பாட்டு பிழைத்திருத்தத்தின் போது மட்டுமே தேவைப்படும். பிழைத்திருத்தத்தின் போது தேவையான தகவலை பதிவு செய்ய, முறை பயன்படுத்தப்படுகிறது debug()
.
உதாரணமாக:
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;
}
}
}
கவனம் செலுத்துங்கள், முறை debug
முறையின் தொடக்கத்தில் உள்ளது (முறைக்கு இன்னும் எதையும் செய்ய நேரம் இல்லை) மற்றும் முறைக்கு அனுப்பப்பட்ட மாறியின் மதிப்பை பதிவில் எழுதுகிறது. இந்த முறையின் மிகவும் பொதுவான பயன்பாடு இதுவாகும் debug()
.
3.3 தகவல் மற்றும் எச்சரிக்கை
அடுத்த இரண்டு நிலைகள் INFO
மற்றும் WARN
. அவர்களுக்கு இரண்டு முறைகள் உள்ளன - info()
மற்றும் warn()
.
நிலை INFO
வெறுமனே தகவல் செய்திகளுக்குப் பயன்படுத்தப்படுகிறது: இதுவும் அதுவும் நடக்கும். பதிவில் ஒரு பிழையைப் பாகுபடுத்தத் தொடங்கும் போது, அதன் பின்னணியைப் படிப்பது மிகவும் பயனுள்ளதாக இருக்கும். இதற்கு முறை சரியானது info()
.
எச்சரிக்கைகளை எழுத நிலை பயன்படுத்தப்படுகிறது ( எச்சரிக்கை என்றWARN
வார்த்தையிலிருந்து ). வழக்கமாக, இந்த அளவிலான முக்கியத்துவத்துடன், ஏதோ தவறு நடந்ததாகத் தகவல் எழுதப்படுகிறது, ஆனால் இந்த சூழ்நிலையில் என்ன செய்வது என்பது நிரலுக்குத் தெரியும்.
எடுத்துக்காட்டாக, ஒரு கோப்பை வட்டுக்கு எழுதும் செயல்பாட்டில், அத்தகைய கோப்பு ஏற்கனவே உள்ளது என்று மாறியது. இங்கே நிரல் ஒரு எச்சரிக்கையை (எச்சரிக்கை) பதிவு செய்யலாம், ஆனால் பயனருக்கு ஒரு உரையாடல் பெட்டியைக் காட்டி, வேறு கோப்பு பெயரைத் தேர்ந்தெடுக்கும்.
உதாரணமாக:
class FileManager {
private static final Logger logger = LoggerFactory.getLogger(FileManager.class);
public boolean saveFile(FileData file) {
logger.info(“save the file ” + file.getName());
boolean resultOK = SaveUtils.save(file);
if (resultOK) return true;
logger.warn(“file writing problem ” + file.getName());
String filename = Dialog.selectFile();
boolean result = SaveUtils.save(file, filename);
return result;
}
3.4 பிழை மற்றும் அபாயகரமானது
இறுதியாக, இரண்டு மிக முக்கியமான பதிவு நிலைகள் ERROR
மற்றும் FATAL
. அவர்களுக்கு, அதே பெயர்களைக் கொண்ட சிறப்பு முறைகளும் உள்ளன: error()
மற்றும் fatal()
.
பிழைகளை இரண்டு வகைகளாகப் பிரிக்கவும் முடிவு செய்தனர் - சாதாரண பிழைகள் மற்றும் அபாயகரமான பிழைகள் . ஒரு அபாயகரமான பிழை பெரும்பாலும் பயன்பாட்டு செயலிழப்பில் (டெஸ்க்டாப் பயன்பாடுகளுக்கு) அல்லது இணைய சேவை செயலிழப்பில் (இணைய பயன்பாடுகளுக்கு) விளைகிறது.
மற்றொரு சிறந்த உதாரணம் விண்டோஸ் இயக்க முறைமை. உங்கள் நிரல் செயலிழந்தால், இயக்க முறைமையின் பார்வையில், இது Error
. இயக்க முறைமையே வீழ்ச்சியடைந்து, மரணத்தின் விண்டோஸ் நீலத் திரையைப் பார்த்தால், இது ஏற்கனவே Fatal error
.
ஜாவா பயன்பாடுகளில், நிகழ்வுகள் பெரும்பாலும் உயர்த்தப்பட்ட விதிவிலக்குகளுடன் தொடர்புடையவை Error
. Fatal
உதாரணமாக:
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;
}
}
}
3.5 என்ன பதிவு செய்ய வேண்டும்
நிச்சயமாக, எல்லாவற்றையும் ஒரு வரிசையில் பதிவு செய்வது மதிப்புக்குரியது அல்ல. பெரும்பாலான சந்தர்ப்பங்களில், இது பதிவின் வாசிப்புத்திறனை கடுமையாக மோசமாக்குகிறது, எல்லாவற்றிற்கும் மேலாக, பதிவு படிக்கும் பொருட்டு முதலில் எழுதப்பட்டுள்ளது.
கூடுதலாக, நீங்கள் பல்வேறு தனிப்பட்ட மற்றும் நிதி தகவல்களை பதிவில் எழுத முடியாது. இப்போது இதை கண்டிப்பாகவும் எளிதாகவும் கொண்டு அபராதம் அல்லது வழக்குகளில் ஈடுபடலாம். விரைவில் அல்லது பின்னர், அத்தகைய பதிவு பக்கத்திற்கு கசிந்துவிடும், பின்னர் எந்த பிரச்சனையும் இருக்காது.
எனவே என்ன பதிவு செய்ய வேண்டும்?
முதலில், நீங்கள் பயன்பாட்டின் தொடக்கத்தை பதிவு செய்ய வேண்டும் . பயன்பாடு தொடங்கிய பிறகு, அதன் செயல்பாட்டு முறை மற்றும் பல்வேறு முக்கியமான அமைப்புகளை உள்நுழைய பரிந்துரைக்கப்படுகிறது - இது எதிர்காலத்தில் பதிவைப் படிப்பதை எளிதாக்கும்.
இரண்டாவதாக, உங்கள் பயன்பாடு செயல்படும் அனைத்து மூன்றாம் தரப்பு சேவைகளின் நிலையை நீங்கள் பதிவு செய்ய வேண்டும் : அஞ்சல் அமைப்புகள், ஏதேனும் வெளிப்புற சேவைகள். குறைந்தபட்சம், அவை சரியாகச் செயல்படுகிறதா என்பதை உறுதிப்படுத்த, அவர்களுடன் இணைக்கும் தருணத்தை நீங்கள் பாதுகாக்க வேண்டும்.
மூன்றாவதாக, அனைத்து விதிவிலக்குகளும் பதிவு செய்யப்பட வேண்டும் . அவை எதிர்பார்க்கப்பட்டால், அவற்றைப் பற்றிய தகவல்களை சுருக்கமாக எழுதலாம். விதிவிலக்குகள் பற்றிய முழுமையான தகவல் பிழையைத் தேடும் போது 50%-80% முக்கியமான தகவல்களை வழங்குகிறது.
நீங்கள் பயன்பாட்டு பணிநிறுத்தத்தையும் பதிவு செய்ய வேண்டும் . பயன்பாடு வழக்கமாக நிறுத்தப்பட வேண்டும் மற்றும் பதிவில் டஜன் கணக்கான பிழைகளை வீசக்கூடாது. பெரும்பாலும் இந்த இடத்தில் நீங்கள் சிக்கிய பணிகள், நூல் குளத்தில் உள்ள சிக்கல்கள் அல்லது தற்காலிக கோப்புகளை நீக்குவதில் உள்ள சிக்கல்களைக் காணலாம்.
பாதுகாப்பு மற்றும் பயனர் அங்கீகாரம் தொடர்பான அனைத்தையும் உள்நுழைய மறக்காதீர்கள் . ஒரு பயனர் தனது கடவுச்சொல்லை 10 முறை உள்நுழைய அல்லது மீட்டமைக்க முயற்சித்தால், இந்தத் தகவல் பதிவுகளில் பிரதிபலிக்க வேண்டும்.
ஒத்திசைவற்ற பணிகளைப் பற்றி முடிந்தவரை தகவல்களைப் பதிவு செய்யவும் - விதிவிலக்குகள் பெரும்பாலும் அத்தகைய நூல்களில் இழக்கப்படுகின்றன. ஒத்திசைவற்ற பணிக்கு, அதன் தொடக்கத்தையும் முடிவையும் பதிவு செய்ய வேண்டும். வெற்றிகரமான நிறைவு ஒரு சிக்கலான ஒன்றைப் போலவே பதிவு செய்யப்பட வேண்டும்.
வேறு என்ன? நேரமான பணிகளைத் தொடங்குதல், சேமிக்கப்பட்ட பணிகளைத் தொடங்குதல் SQL-procedures
, தரவை ஒத்திசைத்தல், விநியோகிக்கப்பட்ட பரிவர்த்தனைகள் தொடர்பான அனைத்தும். தொடக்கத்திற்கு இது போதும் என்று நினைக்கிறேன். எதிர்காலத்தில் இந்தப் பட்டியலில் சேர்ப்பீர்கள்.
GO TO FULL VERSION