5.1 ফিল্টারের তালিকা
লগার আপনাকে খুব শান্তভাবে বার্তা ফিল্টারিং কনফিগার করতে দেয়। এটি করার জন্য, তার কাছে সমস্ত ধরণের পরামিতি সহ কয়েক ডজন ফিল্টার রয়েছে। নীচের টেবিলটি সবচেয়ে জনপ্রিয় দেখায়।
ফিল্টার | বর্ণনা | |
---|---|---|
1 | বার্স্ট ফিল্টার | আপনাকে একটি প্রদত্ত লগিং স্তরের জন্য প্রতি সেকেন্ডে বার্তাগুলির ফ্রিকোয়েন্সি নিয়ন্ত্রণ করতে দেয়৷ |
2 | কম্পোজিট ফিল্টার | আপনাকে একাধিক অনুক্রমিক ফিল্টার সেট করার অনুমতি দেয়। |
3 | ডাইনামিক থ্রেশহোল্ড ফিল্টার | লগে কিছু তথ্য পাওয়া গেলে আপনাকে বিস্তারিত লগিং সক্ষম করার অনুমতি দেয়। |
4 | ম্যাপফিল্টার | আপনাকে বিভিন্ন পরামিতি থেকে ফিল্টারের জন্য একটি জটিল লজিক্যাল এক্সপ্রেশন তৈরি করতে দেয়। |
5 | মার্কার ফিল্টার | আপনাকে ট্যাগ দ্বারা বার্তাগুলি ফিল্টার করার অনুমতি দেয়, ইভেন্ট লগিংয়ের সময় প্রথমে ট্যাগটি যোগ করতে হবে৷ |
6 | RegexFilter | আপনাকে একটি মাস্ক সেট করতে দেয় - একটি নিয়মিত অভিব্যক্তি। |
7 | স্ট্রাকচার্ড ডেটা ফিল্টার | আপনাকে নির্দিষ্ট ডেটার উপস্থিতি দ্বারা বার্তাগুলিকে ফিল্টার করার অনুমতি দেয়৷ |
8 | ThreadContextMapFilter | বর্তমান থ্রেডের প্রেক্ষাপট থেকে নেওয়া ডেটার উপর ভিত্তি করে আপনাকে ফিল্টার পরিচালনা করতে দেয়। |
9 | থ্রেশহোল্ড ফিল্টার | লগ বার্তা স্তরের উপর ভিত্তি করে লগিং নিয়ন্ত্রণ করে। |
10 | টাইম ফিল্টার | আপনাকে নির্দিষ্ট সময়ে ফিল্টার চালু এবং বন্ধ করার অনুমতি দেয়। |
নীচে আমরা তাদের মধ্যে মাত্র তিনটি সম্পর্কে কথা বলব। আপনি তাদের অফিসিয়াল ওয়েবসাইটে এই ফিল্টারগুলি সম্পর্কে আরও জানতে পারেন ৷
5.2 টাইম ফিল্টার
ফিল্টারটি TimeFilter
আপনাকে একটি নির্দিষ্ট সময়ে ফিল্টার চালু এবং বন্ধ করতে দেয়, এতে 5টি পরামিতি রয়েছে:
1 | শুরু | বিন্যাসে লগিং শুরু সময়HH:mm:ss |
2 | শেষ | বিন্যাসে লগ অফ সময়HH:mm:ss |
3 | সময় অঞ্চল | সময় অঞ্চল সেট করে। |
4 | ম্যাচ | ফিল্টার কন্ডিশন সত্য হলে কিভাবে লগ করবেন । হতে পারে ACCEPT , DENY বা NEUTRAL । ডিফল্ট NEUTRAL _ |
5 | অমিল | ফিল্টার কন্ডিশন মিথ্যা হলে কিভাবে লগ করবেন । হতে পারে ACCEPT , DENY বা NEUTRAL । ডিফল্ট NEUTRAL _ |
আসুন একটি ফিল্টার সেট আপ করি যা প্রতিদিন সকাল 5টায় লগিং চালু করবে এবং প্রতিদিন 5:30 এ এটি বন্ধ করবে। সম্পূর্ণ ফিল্টার কনফিগারেশন সহ একটি উদাহরণ নীচে দেওয়া হল:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
<TimeFilter start="05:00:00" end="05:30:00" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<pattern>%d %p %c{1.} [%t] %m%n</pattern>
</PatternLayout>
<TimeBasedTriggeringPolicy />
</RollingFile>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
5.3 রেজেক্স ফিল্টার
ফিল্টারটি RegexFilter
আপনাকে বার্তাগুলি ফিল্টার করার জন্য একটি মাস্ক (নিয়মিত অভিব্যক্তি) সেট করতে দেয়। এই ফিল্টারটির 4টি পরামিতি রয়েছে:
1 | regex | একটি নিয়মিত অভিব্যক্তি নির্দিষ্ট করে - একটি মুখোশ যা বার্তাগুলি ফিল্টার করতে ব্যবহৃত হয়।HH:mm:ss |
2 | useRawMsg | ফর্ম্যাট করার আগে (সত্য) বা ফর্ম্যাট করার পরে (মিথ্যা) মাস্কটি মেসেজে প্রয়োগ করা হয় |
3 | ম্যাচ | ফিল্টার কন্ডিশন সত্য হলে কিভাবে লগ করবেন । হতে পারে ACCEPT , DENY বা NEUTRAL । ডিফল্ট NEUTRAL _ |
4 | অমিল | ফিল্টার কন্ডিশন মিথ্যা হলে কিভাবে লগ করবেন । হতে পারে ACCEPT , DENY বা NEUTRAL । ডিফল্ট NEUTRAL _ |
আসুন একটি ফিল্টার সেট আপ করি যা শুধুমাত্র জাভারুশ শব্দ ধারণকারী বার্তাগুলিকে অনুমতি দেবে৷ সম্পূর্ণ ফিল্টার কনফিগারেশন সহ একটি উদাহরণ নীচে দেওয়া হল:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
<RegexFilter regex=".* codegym .*" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<pattern>%d %p %c{1.} [%t] %m%n</pattern>
</PatternLayout>
<TimeBasedTriggeringPolicy />
</RollingFile>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
5.4 থ্রেশহোল্ড ফিল্টার
থ্রেশহোল্ড ফিল্টার ফিল্টার আপনাকে বার্তা স্তর দ্বারা ফিল্টারিং কনফিগার করতে দেয়। এটির মাত্র 3টি পরামিতি রয়েছে:
1 | স্তর | বার্তা লগিং স্তরের নাম সেট করে: ERROR , DEBUG , … |
2 | ম্যাচ | ফিল্টার কন্ডিশন সত্য হলে কিভাবে লগ করবেন । হতে পারে ACCEPT , DENY বা NEUTRAL । ডিফল্ট NEUTRAL _ |
3 | অমিল | ফিল্টার কন্ডিশন মিথ্যা হলে কিভাবে লগ করবেন । হতে পারে ACCEPT , DENY বা NEUTRAL । ডিফল্ট NEUTRAL _ |
আসুন একটি ফিল্টার সেট আপ করি যা শুধুমাত্র স্তরের বার্তাগুলিকে অনুমতি দেবে DEBUG
। সম্পূর্ণ ফিল্টার কনফিগারেশন সহ একটি উদাহরণ নীচে দেওয়া হল:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
<ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<pattern>%d %p %c{1.} [%t] %m%n</pattern>
</PatternLayout>
<TimeBasedTriggeringPolicy />
</RollingFile>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
GO TO FULL VERSION