আমি একই প্রক্রিয়া থেকে 2 টি পৃথক লগ ফাইলগুলিতে লগ লিখতে চাই।
লগ 4 নেট ব্যবহার করে কি সম্ভব কাজটি করা সম্ভব?
আমি প্রতিটি লগ ফাইল পৃথক বার্তা লিখতে হবে। আমি কীভাবে একটি নির্দিষ্ট অ্যাপেন্ডারের কাছে একটি বার্তা লিখতে পারি?
আমি একই প্রক্রিয়া থেকে 2 টি পৃথক লগ ফাইলগুলিতে লগ লিখতে চাই।
লগ 4 নেট ব্যবহার করে কি সম্ভব কাজটি করা সম্ভব?
আমি প্রতিটি লগ ফাইল পৃথক বার্তা লিখতে হবে। আমি কীভাবে একটি নির্দিষ্ট অ্যাপেন্ডারের কাছে একটি বার্তা লিখতে পারি?
উত্তর:
হ্যাঁ, আপনার লগারে কেবল একাধিক ফাইল অ্যাপেন্ডার যুক্ত করুন। উদাহরণ স্বরূপ:
<log4net>
<appender name="File1Appender" type="log4net.Appender.FileAppender">
<file value="log-file-1.txt" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %message%newline" />
</layout>
</appender>
<appender name="File2Appender" type="log4net.Appender.FileAppender">
<file value="log-file-2.txt" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="File1Appender" />
<appender-ref ref="File2Appender" />
</root>
</log4net>
এই উত্তরগুলি সহায়ক ছিল, তবে আমি আমার উত্তরটি অ্যাপকনফিগ অংশ এবং সি # কোড অংশ উভয়ের সাথে ভাগ করতে চেয়েছিলাম, সুতরাং পরবর্তী ব্যক্তির পক্ষে কম অনুমান করা যায়।
<log4net>
<appender name="SomeName" type="log4net.Appender.RollingFileAppender">
<file value="c:/Console.txt" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<datePattern value="yyyyMMdd" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="1MB" />
</appender>
<appender name="Summary" type="log4net.Appender.FileAppender">
<file value="SummaryFile.log" />
<appendToFile value="true" />
</appender>
<root>
<level value="ALL" />
<appender-ref ref="SomeName" />
</root>
<logger additivity="false" name="Summary">
<level value="DEBUG"/>
<appender-ref ref="Summary" />
</logger>
</log4net>
তারপরে কোডে:
ILog Log = LogManager.GetLogger("SomeName");
ILog SummaryLog = LogManager.GetLogger("Summary");
Log.DebugFormat("Processing");
SummaryLog.DebugFormat("Processing2"));
এখানে সি: / কনসোল.টেক্সটে "প্রসেসিং" থাকবে ... এবং \ সংক্ষিপ্ত ফাইল.লগটিতে "প্রসেসিং 2" থাকবে
<layout> ... </layout>
, এটি ছাড়া আমি লগ ফাইলে কোনও বার্তা দেখতে পাইনি।
বিনয় সঠিক। তার উত্তরে আপনার মন্তব্যের জবাবে আপনি এটি করতে পারেন এমন একটি উপায় নীচে:
<root>
<level value="ALL" />
<appender-ref ref="File1Appender" />
</root>
<logger name="SomeName">
<level value="ALL" />
<appender-ref ref="File1Appender2" />
</logger>
অতীতে আমি এইভাবেই করেছি। তারপরে অন্য লগের জন্য এই জাতীয় কিছু:
private static readonly ILog otherLog = LogManager.GetLogger("SomeName");
এবং আপনি নিম্নলিখিত হিসাবে আপনার সাধারণ লগার পেতে পারেন:
private static readonly ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
এটি কীভাবে কাজ করে তা বুঝতে ডকুমেন্টেশনের লগার এবং সংযোজন বিভাগ পড়ুন ।
আমি সমস্ত বার্তা রুট লগারে লগ করতে চেয়েছিলাম, এবং ত্রুটিযুক্ত একটি পৃথক লগ রাখতে এখানে এটি কীভাবে করা যায় তা এখানে:
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="allMessages.log" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level %logger - %message%newline" />
</layout>
</appender>
<appender name="ErrorsFileAppender" type="log4net.Appender.FileAppender">
<file value="errorsLog.log" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level %logger - %message%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="ERROR" />
<levelMax value="FATAL" />
</filter>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="FileAppender" />
<appender-ref ref="ErrorsFileAppender" />
</root>
</log4net>
ফিল্টার উপাদান ব্যবহার লক্ষ্য করুন।
দুটি বা ততোধিক ফাইলগুলিতে লগগুলি কনফিগার করতে নীচে XML কনফিগারেশন ব্যবহার করুন,
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="logs\log.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline" />
</layout>
</appender>
<appender name="RollingLogFileAppender2" type="log4net.Appender.RollingFileAppender">
<file value="logs\log1.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="All" />
<appender-ref ref="RollingLogFileAppender" />
</root>
<logger additivity="false" name="RollingLogFileAppender2">
<level value="All"/>
<appender-ref ref="RollingLogFileAppender2" />
</logger>
</log4net>
এক্সএমএল কনফিগারেশন উপরে দুটি পৃথক ফাইল লগ ইন।
প্রোগ্রামারগতভাবে লগার নির্দিষ্ট উদাহরণ পেতে,
ILog logger = log4net.LogManager.GetLogger ("RollingLogFileAppender2");
আপনি বহুগুণ ফাইলগুলিতে লগ ইন করার জন্য লগ 4 নেট মূল উপাদানটির মধ্যে দুটি বা আরও বেশি সংযোজনকারী উপাদান যুক্ত করতে পারেন।
উপরের এক্সএমএল কনফিগারেশন কাঠামো বা আপনার অ্যাপ্লিকেশনটির জন্য কোন অ্যাপেন্ডর সেরা, সে সম্পর্কে আরও তথ্য নীচের লিঙ্ক থেকে বিশদটি পড়ুন,
https://logging.apache.org/log4net/release/manual/configration.html https://logging.apache.org/log4net/release/sdk/index.html
আশা করি এটি সাহায্য করবে।