అనుబంధుల జాబితా
లాగర్ మిమ్మల్ని ఒకేసారి అనేక ఫైల్లకు డేటాను సేవ్ చేయడానికి అనుమతిస్తుంది. ఇటువంటి అవుట్పుట్ డేటా స్ట్రీమ్లను అనుబంధాలు అంటారు (అనుబంధం నుండి). చాలా కొన్ని ప్రామాణిక అనుబంధాలు ఉన్నాయి, కాబట్టి మేము అత్యంత ప్రజాదరణ పొందిన వాటిని మాత్రమే కవర్ చేస్తాము:
అనుబంధులు | వివరణ | |
---|---|---|
1 | కన్సోల్ | కన్సోల్కు డేటాను ప్రింట్ చేస్తుంది |
2 | ఫైల్ | ఫైల్కి డేటాను అవుట్పుట్ చేస్తుంది |
3 | DailyRollingFile | ఫైల్కి డేటాను అవుట్పుట్ చేస్తుంది, ఫైల్ చక్రీయంగా ఓవర్రైట్ చేయబడుతుంది |
4 | సమకాలీకరణ | డేటాను మరొక అనుబంధానికి అసమకాలికంగా వ్రాయడానికి మిమ్మల్ని అనుమతిస్తుంది |
5 | సాకెట్ | నిర్దిష్ట సాకెట్కు డేటాను వ్రాస్తుంది |
6 | JDBC | JDBC ప్రోటోకాల్ని ఉపయోగించి డేటాబేస్కు సందేశాలను వ్రాస్తుంది |
7 | JPA | JPA ప్రోటోకాల్ని ఉపయోగించి డేటాబేస్కు సందేశాలను వ్రాస్తుంది |
8 | HTTP | రిమోట్ సర్వర్కు HTTP ప్రోటోకాల్ ద్వారా ఈవెంట్లను పంపుతుంది |
9 | SMTP | సందేశాలను బఫర్లో నిల్వ చేసి, ఆపై వాటిని ఇమెయిల్గా పంపుతుంది |
అపెండర్లందరికీ మంచి డాక్యుమెంటేషన్ వారి అధికారిక వెబ్సైట్లో ఉంది
మరియు క్రింద మేము వాటిలో అత్యంత ప్రాచుర్యం పొందిన మరియు సరళమైన వాటిని పరిశీలిస్తాము.
కన్సోల్అపెండర్
సరళమైన అనుబంధంConsoleApender
. మీరు ఊహించినట్లుగా, అతను తన సందేశాలను కన్సోల్కు వ్రాస్తాడు. ఇది మాకు అనేక ఆసక్తికరమైన పారామితులను కలిగి ఉంది:
గుణాలు | ||
---|---|---|
1 | పేరు | అనుబంధం పేరు |
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
అతను తన సందేశాలను ఫైల్కి వ్రాసినట్లు కాకుండా . మీ అప్లికేషన్ సర్వర్లో ఎక్కడో నడుస్తున్నప్పుడు ఇది చాలా ఉపయోగకరంగా ఉంటుంది. ఇది చాలా పారామితులను కలిగి ఉంది, ఎందుకంటే ఇది తప్పనిసరిగా వేర్వేరు ఆపరేటింగ్ సిస్టమ్లలో ఫైల్లను వ్రాయగలగాలి.
కానీ వాటిలో అత్యంత ప్రాచుర్యం పొందిన వాటిని మాత్రమే మేము పరిశీలిస్తాము.
1 | పేరు | అనుబంధం పేరును నిర్దేశిస్తుంది |
2 | వడపోత | కొన్ని సందేశాలను ఫిల్టర్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది |
3 | లేఅవుట్ | అవుట్పుట్ చేసినప్పుడు సందేశాల ఫార్మాటింగ్ను నిర్దేశిస్తుంది |
4 | ఫైల్ పేరు | సందేశాలను వ్రాయవలసిన ఫైల్ పేరును నిర్దేశిస్తుంది |
5 | జోడించు | ఒకవేళ true , అప్పుడు సందేశాలు పాత లాగ్కు జోడించబడతాయి, అయితే false - అప్లికేషన్ ప్రారంభించిన ప్రతిసారీ లాగ్ ఫైల్ మళ్లీ సృష్టించబడుతుంది. |
6 | బఫర్ పరిమాణం | బఫర్ పరిమాణాన్ని బైట్లలో సెట్ చేస్తుంది |
7 | వెంటనే ఫ్లష్ | అయితే 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
అత్యంత ప్రజాదరణ పొందిన అనుబంధంRollingFileAppender
. ఇది కాకుండా FileAppender
, ఇది లాగ్ను అనేక చిన్న ఫైల్లుగా విభజించడానికి మిమ్మల్ని అనుమతిస్తుంది. పెద్ద లాగ్లకు ఇది చాలా ముఖ్యం. అదనంగా, కొత్త ఫైల్లను వ్రాయడం ప్రారంభించిన తర్వాత పాత ఫైల్లతో ఏమి చేయాలో నియమాలను సెట్ చేయడానికి ఇది మిమ్మల్ని అనుమతిస్తుంది.
మరియు ఈ అనుబంధానికి దాదాపు వంద విభిన్న సెట్టింగ్లు ఉన్నాయి. మీరు లింక్లో వాటి గురించి మరింత తెలుసుకోవచ్చు .
ఈ అనుబంధం యొక్క అత్యంత ప్రజాదరణ పొందిన లక్షణాలను పరిగణించండి:
గుణాలు | ||
---|---|---|
1 | పేరు | అనుబంధం పేరును నిర్దేశిస్తుంది |
2 | వడపోత | కొన్ని సందేశాలను ఫిల్టర్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది |
3 | లేఅవుట్ | అవుట్పుట్ చేసినప్పుడు సందేశాల ఫార్మాటింగ్ను నిర్దేశిస్తుంది |
4 | ఫైల్ పేరు | సందేశాలను వ్రాయవలసిన ఫైల్ పేరును నిర్దేశిస్తుంది |
5 | ఫైల్ నమూనా | ఇకపై వ్రాయబడని ఆర్కైవ్ ఫైల్ల కోసం నామకరణ నమూనాను పేర్కొంటుంది |
6 | విధానం | ఫైల్ ఓవర్రైట్ చేయడం ప్రారంభించాల్సిన పరిస్థితిని నిర్దేశిస్తుంది |
7 | వ్యూహం | పాత ఫైల్లతో ఏమి చేయాలో వివరిస్తుంది: ఆర్కైవ్, ఎన్ని రోజుల పాటు ఉంచాలనే చరిత్ర మొదలైనవి. |
ఇక్కడ ఒక మంచి ఉదాహరణ:
<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కి చేరుకుంటే పని చేస్తుంది