4.1 లాగింగ్ స్థాయిల జాబితా
మీరు మీ ప్రోగ్రామ్ను వ్రాసారు, దానిని సర్వర్కు అప్లోడ్ చేసారు, ఆపై మీకు వెంటనే ప్రశ్నలు వస్తాయి:
debug()
లో పని చేస్తున్నప్పుడు పద్ధతి పని చేయదని ఎలా నిర్ధారించుకోవాలిproduction
?- లాగ్లలో చాలా సమాచారం ఉంది, మీరు దోష సందేశాలను మాత్రమే ఉంచాలనుకుంటున్నారా?
- అప్లికేషన్లోని ఒక భాగానికి సంబంధించిన వివరణాత్మక లాగ్ను ఎలా చూడాలి?
వాస్తవానికి, లాగ్ల సృష్టికర్తలు దశాబ్దాల క్రితం ఇదే విషయాన్ని ఎదుర్కొన్నారు. సి లాంగ్వేజ్లో ఈ సమస్య ఎలా పరిష్కరించబడిందో నేను మీకు చెప్పను, కానీ జావా భాషలో చాలా అందంగా పరిష్కరించబడింది.
కు సమాచారాన్ని వ్రాయడానికి ముందు లాగ్ డేటాను ఫిల్టర్ చేస్తుంది . లాగింగ్ స్థాయిని సెట్ చేయడం ద్వారా మీరు లాగ్ వివరాలను చాలా త్వరగా తగ్గించవచ్చు / పెంచవచ్చు. ఈ స్థాయిలు క్రింది పట్టికలో వివరించబడ్డాయి:
స్థాయి | గమనిక | |
---|---|---|
1 | అన్ని | అన్ని సందేశాలను లాగ్ చేయండి |
2 | జాడ కనుగొను | డీబగ్ చేస్తున్నప్పుడు చిన్న సందేశం |
3 | డీబగ్ | డీబగ్గింగ్ కోసం ముఖ్యమైన సందేశాలు |
4 | సమాచారం | సాధారణ సందేశాలు |
5 | హెచ్చరించు | ప్రాణాంతకం, లోపం మరియు హెచ్చరిక మాత్రమే వ్రాయండి |
6 | లోపం | లోపాలు మరియు ప్రాణాంతక దోషాలను మాత్రమే వ్రాయండి |
7 | ప్రాణాంతకం | ప్రాణాంతకమైన లోపాలను మాత్రమే వ్రాయండి |
8 | ఆఫ్ | లాగ్కు సందేశాలను వ్రాయవద్దు |
సందేశాలను ఫిల్టర్ చేసేటప్పుడు ఈ స్థాయిలు ఉపయోగించబడతాయి. మీరు లాగింగ్ స్థాయిని సెట్ చేస్తే WARN
, దాని కంటే తక్కువ ముఖ్యమైన అన్ని సందేశాలు WARN
విస్మరించబడతాయి: TRACE
, DEBUG
, INFO
. మీరు ఫిల్టరింగ్ స్థాయిని సెట్ చేస్తే FATAL
, అప్పుడు కూడా ERROR
.
ఫిల్టరింగ్లో ఉపయోగించే మరో రెండు తీవ్రత స్థాయిలు ఉన్నాయి - ఇది OFF
(అన్ని సందేశాలను విస్మరించండి) మరియు ALL
- అన్ని సందేశాలను వ్రాయండి (ఏమీ విస్మరించవద్దు).
4.2 లాగ్ సెటప్ ఉదాహరణ
ఒక సాధారణ లాగ్ సెటప్ ఉదాహరణను చూద్దాం. దీన్ని చేయడానికి, మనకు log4j.properties ఫైల్ అవసరం, ఇది వనరుల ఫోల్డర్లో ఉంచబడుతుంది. దానికి కింది కంటెంట్ని జోడిద్దాం:
# Root logger option
log4j.rootLogger=WARN, stdout
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}
ఇక్కడ మొదటి పంక్తిలో మేము లాగింగ్ స్థాయిని సెట్ చేసాము - WARN
. మరియు స్థితితో లాగర్కు వ్రాయబడిన సందేశాలు విస్మరించబడతాయని దీని DEBUG
అర్థం INFO
.
- మేము ఏ రకమైన అనుబంధాన్ని ఉపయోగించాలో పేర్కొనండి -
ConsoleAppender
- మేము లాగ్ ఎక్కడ వ్రాస్తామో పేర్కొనండి -
System.out
- మేము రికార్డింగ్ ఆకృతిని నియంత్రించే తరగతిని సెట్ చేసాము -
PatternLayout
- అన్ని సందేశాల కోసం రికార్డింగ్ ఆకృతిని సెట్ చేయండి - తేదీ మరియు సమయం
4.3 జనాదరణ పొందిన లాగింగ్ తప్పులు
మరియు మరొక ముఖ్యమైన విషయం - లాగింగ్లో జనాదరణ పొందిన లోపాలు. ఏదైనా చేయడానికి చాలా ఎంపికలు లేవు, కానీ అనేక సాధారణ తప్పులను గుర్తించవచ్చు:
- చాలా ఎక్కువ లాగింగ్ . మీరు ప్రతి అడుగును లాగిన్ చేయకూడదు, ఇది సిద్ధాంతపరంగా ముఖ్యమైనది. ఒక నియమం ఉంది: లాగ్లు పనితీరును 10% కంటే ఎక్కువ లోడ్ చేయలేవు . లేకపోతే పనితీరు సమస్యలు ఉంటాయి.
- మొత్తం డేటాను ఒకే ఫైల్లోకి లాగడం . దీని వలన కొంత సమయంలో చదవడం/వ్రాయడం చాలా కష్టంగా ఉంటుంది, నిర్దిష్ట సిస్టమ్లలో ఫైల్ పరిమాణ పరిమితులు ఉన్నాయని ప్రత్యేకంగా చెప్పనక్కర్లేదు.
- తప్పు లాగింగ్ స్థాయిలను ఉపయోగించడం . లాగింగ్ యొక్క ప్రతి స్థాయికి స్పష్టమైన సరిహద్దులు ఉన్నాయి మరియు వాటిని గౌరవించాలి. సరిహద్దు అస్పష్టంగా ఉంటే, ఏ స్థాయిలో ఉపయోగించాలో మీరు అంగీకరించవచ్చు.
GO TO FULL VERSION