PatternLayout এবং তার বিভিন্ন প্যাটার্ন

Layout Configuration - লগ4জে (log4j) - Java Technologies

243

Log4j একটি শক্তিশালী এবং জনপ্রিয় লগিং ফ্রেমওয়ার্ক যা Java অ্যাপ্লিকেশনগুলিতে লগিং পরিচালনার জন্য ব্যবহৃত হয়। PatternLayout হল Log4j এর একটি ফিচার যা লগ মেসেজগুলির আউটপুট কাস্টমাইজ করতে ব্যবহৃত হয়। এটি একটি নির্দিষ্ট প্যাটার্ন ব্যবহার করে লগ মেসেজ ফরম্যাটের কনফিগারেশন করার সুযোগ দেয়। এই প্যাটার্নগুলো কনসোল, ফাইল বা অন্য কোনো আউটপুট ডিভাইসে লগ মেসেজ প্রিন্ট করার সময় ব্যবহৃত হয়।

১. PatternLayout এর ধারণা

PatternLayout ব্যবহার করে আপনি লগ মেসেজের আউটপুট কাস্টমাইজ করতে পারেন, যেমন তারিখ, সময়, লগ লেভেল, লগারের নাম, লাইন নম্বর ইত্যাদি। আপনি ConversionPattern এর মাধ্যমে নির্দিষ্ট ফরম্যাটে আউটপুট কনফিগার করতে পারেন।

২. PatternLayout কনফিগারেশন উদাহরণ

লগ4জে কনফিগারেশনে PatternLayout ব্যবহার করার জন্য, আপনাকে log4j.properties অথবা log4j.xml ফাইলে কনফিগারেশন করতে হবে। নিচে একটি উদাহরণ দেওয়া হলো।

log4j.properties উদাহরণ

log4j.rootLogger=DEBUG, console, file

# Console appender configuration
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# File appender configuration
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=app.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{1} - %m%n

এখানে, PatternLayout ব্যবহৃত হচ্ছে কনসোল এবং ফাইল অ্যাপেন্ডারের জন্য। ConversionPattern এর মাধ্যমে লগ মেসেজের আউটপুট কনফিগার করা হয়েছে।

log4j.xml উদাহরণ

<?xml version="1.0" encoding="UTF-8"?>
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
        </layout>
    </appender>

    <root>
        <priority value="debug" />
        <appender-ref ref="console" />
    </root>
</log4j:configuration>

এখানে PatternLayout এবং ConversionPattern এর মাধ্যমে কাস্টম লগ আউটপুট ফরম্যাট করা হয়েছে।


৩. PatternLayout এর বিভিন্ন প্যাটার্ন

PatternLayout এর মাধ্যমে আপনি লগ আউটপুট কাস্টমাইজ করার জন্য বিভিন্ন প্যাটার্ন ব্যবহার করতে পারেন। এখানে কিছু সাধারণ প্যাটার্ন এবং তাদের ব্যবহার তুলে ধরা হলো:

Common Pattern Specifiers:

  1. %d{pattern}:
    • লগ মেসেজের সময় বা তারিখ।
    • উদাহরণ: %d{yyyy-MM-dd HH:mm:ss} — লগ মেসেজের সময় তারিখ ফরম্যাটে।
    • আউটপুট: 2024-12-22 15:30:00
  2. %-5p:
    • লগ লেভেল, যেমন DEBUG, INFO, ERROR।
    • উদাহরণ: %-5p — লগ লেভেল ৫ অক্ষরের দৈর্ঘ্যে ফরম্যাট করবে।
    • আউটপুট: DEBUG, INFO
  3. %c{1}:
    • লগারের নাম, যেখানে {1} সীমিত সংখ্যা গঠন করে (ক্লাসের নামের প্রথম অংশ)।
    • উদাহরণ: %c{1} — কেবলমাত্র ক্লাসের নামের প্রথম অংশ দেখাবে।
    • আউটপুট: MyClass
  4. %L:
    • লগ মেসেজের লাইনের নম্বর।
    • উদাহরণ: %L — লগের লাইনের নম্বর।
    • আউটপুট: 42
  5. %m:
    • লগ মেসেজের আসল কন্টেন্ট।
    • উদাহরণ: %m — মেসেজের মূল কন্টেন্ট।
    • আউটপুট: Application started successfully
  6. %t:
    • লগ স্ট্যাটাসের থ্রেড নাম।
    • উদাহরণ: %t — লগের থ্রেড নাম।
    • আউটপুট: main
  7. %n:
    • একটি নতুন লাইন যোগ করে।
    • উদাহরণ: %n — আউটপুটের শেষে নতুন লাইন যোগ করবে।

Complex Pattern Example:

log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L [%t] - %m%n

এখানে, %d{yyyy-MM-dd HH:mm:ss} — লগ মেসেজের সময় তারিখ প্রদর্শন করবে, %-5p — লগ লেভেল প্রদর্শন করবে, %c{1} — ক্লাসের নামের প্রথম অংশ, %L — লাইনের নম্বর, %t — থ্রেডের নাম এবং %m — মেসেজ প্রদর্শন করবে।

আউটপুট হবে:

2024-12-22 15:30:00 DEBUG MyClass:42 [main] - Application started successfully

৪. PatternLayout এর আরও কাস্টম প্যাটার্ন উদাহরণ

  • %p: লগ লেভেল (উদাহরণ: INFO, DEBUG, ERROR)
  • %c{2}: লগারের নামের প্রথম দুটি অংশ
  • %m{upper}: মেসেজের কনভার্সন (যেমন, বড় হাতের অক্ষরে)

উদাহরণ ১: কাস্টম PatternLayout

log4j.appender.file.layout.ConversionPattern=%d{ISO8601} [%p] %c{1} - %m%n

এখানে, ISO8601 তারিখ ফরম্যাট ব্যবহার করা হয়েছে, %p - লগ লেভেল, %c{1} - ক্লাসের নামের প্রথম অংশ, এবং %m - মূল মেসেজ।

আউটপুট হতে পারে:

2024-12-22T15:30:00,123 [INFO] MyClass - Application initialized

উদাহরণ ২: বড় হাতের অক্ষরে মেসেজ প্রদর্শন

log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1} - %m{upper}%n

এখানে, %m{upper} মেসেজকে বড় হাতের অক্ষরে কনভার্ট করে।

আউটপুট হতে পারে:

2024-12-22 15:30:00 INFO MyClass - APPLICATION INITIALIZED

৫. PatternLayout এর সুবিধা

  1. Flexibility: এটি আপনাকে লগ আউটপুট ফরম্যাট কাস্টমাইজ করার সুবিধা দেয়। আপনি নিজের প্রয়োজন অনুযায়ী বিভিন্ন প্যাটার্ন ব্যবহার করতে পারেন।
  2. Readability: কাস্টম প্যাটার্ন দিয়ে লগ মেসেজ আরও পড়তে সুবিধাজনক এবং সহজবোধ্য করা যায়।
  3. Consistency: এক ধরনের ফরম্যাট ব্যবহার করে আপনি সমস্ত লগ মেসেজগুলিকে সামঞ্জস্যপূর্ণ রাখতে পারেন, যা debugging এবং সমস্যা শনাক্তকরণের জন্য সহায়ক।

সারাংশ

PatternLayout হল একটি শক্তিশালী টুল যা Log4j এর মাধ্যমে লগ আউটপুট কাস্টমাইজ করতে ব্যবহৃত হয়। PatternLayout এর মাধ্যমে আপনি লগ মেসেজের ফরম্যাট নির্ধারণ করতে পারেন, যেমন তারিখ, সময়, লগ লেভেল, ক্লাসের নাম, মেসেজ ইত্যাদি। এটি আপনাকে আপনার লগ আউটপুট আরো কার্যকর এবং পড়তে সহজ করে তোলে, এবং কাস্টম প্যাটার্ন ব্যবহার করে আরও বেশি নিয়ন্ত্রণ প্রদান করে।


Content added By
Promotion

Are you sure to start over?

Loading...