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