উত্তর:
আপনার লগ 4 নেট কনফিগারেশন ফাইলে রোলিংফাইলে অ্যাপেন্ডেন্ডারের সাথে নিম্নলিখিত প্যারামিটারটি ব্যবহার করুন:
<param name="DatePattern" value="dd.MM.yyyy'.log'" />
<preserveLogFileNameExtension value="true" />
হ'ল সঠিক বাক্য গঠন এবং এটি দুর্দান্ত উত্তর। ক্ষতি কীভাবে ঘটেছিল, আমি জিজ্ঞাসা করতে পারি?
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<file value="logs\" />
<datePattern value="dd.MM.yyyy'.log'" />
<staticLogFileName value="false" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="5MB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
রোলিংলগফাইলে অ্যাপেন্ডেন্ডারের জন্য আপনার এই উপাদানগুলি এবং মানগুলিও দরকার:
<rollingStyle value="Date" />
<staticLogFileName value="false" />
লগ 4 নেট ১.২.১৩ ব্যবহার করে আমরা ফাইলের নামের তারিখের সময় দেওয়ার জন্য নিম্নলিখিত কনফিগারেশন সেটিংস ব্যবহার করি।
<file type="log4net.Util.PatternString" value="E:/logname-%utcdate{yyyy-MM-dd}.txt" />
যা নিম্নলিখিত সম্মেলনে ফাইলগুলি সরবরাহ করবে: logname-2015-04-17.txt
এটি দিয়ে আপনি প্রতিদিন 1 লগ রাখছেন তা নিশ্চিত করার জন্য নিম্নলিখিতটি রাখা সাধারণত সেরা।
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd" />
ফাইলের আকারটি যদি উদ্বেগের বিষয় থাকে তবে নীচেরগুলি 5MB আকারের 500 টি ফাইলকে নতুন দিনের প্রসার না হওয়া পর্যন্ত অনুমতি দেয়। কাউন্ট ডাইরেকশনটি ফাইলের আরোহী বা বর্ধনের সংখ্যা নির্ধারণ করে যা বর্তমানে নেই which
<maxSizeRollBackups value="500" />
<maximumFileSize value="5MB" />
<rollingStyle value="Composite" />
<datePattern value="yyyyMMdd" />
<CountDirection value="1"/>
<staticLogFileName value="true" />
আমি ব্যবহার করে শেষ করেছি ('.log' ফাইলের নাম এবং 'মাইফিলনাম_' এর চারপাশে একক উদ্ধৃতিগুলি নোট করুন):
<rollingStyle value="Date" />
<datePattern value="'myfilename_'yyyy-MM-dd"/>
<preserveLogFileNameExtension value="true" />
<staticLogFileName value="false" />
<file type="log4net.Util.PatternString" value="c:\\Logs\\.log" />
এটি আমাকে দেয়:
myfilename_2015-09-22.log
myfilename_2015-09-23.log
.
.
preserveLogFileNameExtension
লগ 4 নেট (যেমন v1.2.10) এর পূর্ববর্তী সংস্করণগুলির জন্য এটি এখানে
আমি সমস্ত উত্তর চেষ্টা করে দেখেছি, তবে আমার কাছে প্রত্যাশার মতো কিছু না কিছু ছিল এবং সর্বদা অনুপস্থিত ছিল।
তারপরে আমি প্রতিটি উত্তরে প্রদত্ত ইঙ্গিতগুলির সাথে কিছুটা পরীক্ষা-নিরীক্ষা করেছি এবং নিম্নলিখিত সেটিংসে সফল হয়েছিল:
<appender name="RollingActivityLog" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="C:\temp\LOG4NET_Sample_Activity.log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<staticLogFileName value="false" />
<preserveLogFileNameExtension value="true" />
<datePattern value="-yyyyMMdd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level - %message%newline" />
</layout>
</appender>
প্যারামিটারগুলির অন্যান্য সংমিশ্রণের সমস্যাটি ছিল সর্বশেষতম ফাইলটির সময় প্যাটার্ন ছিল না, বা সময় প্যাটার্নটি যুক্ত করা হয়েছিল .log20171215
যা প্রতিদিন একটি নতুন ফাইল সময় তৈরি করে (এবং একটি নতুন ফাইল টাইপ! ) - বা উভয়ই সমস্যা উপস্থিত হয়েছিল।
এখন এই সেটিংটি দিয়ে আপনি এই জাতীয় ফাইলগুলি পেয়ে যাচ্ছেন:
LOG4NET_Sample_Activity-20171215.log
যা আমি চেয়েছিলাম
সংক্ষেপ:
তারিখের প্যাটার্নটি <file value=...
অ্যাট্রিবিউটে রাখবেন না, কেবল এটিতে সংজ্ঞা দিন datePattern
।
আপনার preserveLogFileNameExtension
মান মানটি সেট করা আছে তা নিশ্চিত করুন true
।
আপনার staticLogFileName
মানটি সেট করা আছে তা নিশ্চিত করুন false
।
সেট rollingStyle
অ্যাট্রিবিউট মান থেকে Date
।
ফাইল এক্সটেনশন সংরক্ষণ করতে:
<log4net>
<root>
<level value="DEBUG"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="D:\\LogFolder\\%date{yyyyMM}\\SchT.log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<maximumFileSize value="30MB" />
<staticLogFileName value="true" />
<preserveLogFileNameExtension value="true"/>
<datePattern value="ddMMyyyy" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
</log4net>
%date{yyyyMM}
এবং value="ddMMyyyy"
? কার্যকর তারিখের ধরণটি কোনটি?
এর সাথে পূর্ববর্তী প্রতিক্রিয়ায় বর্ধিত কনফিগারেশন বিভাগ
...
...
<rollingStyle value="Composite" />
...
...
তালিকাভুক্ত কাজ কিন্তু আমি ব্যবহার করতে হবে না
<staticLogFileName value="false" />
। আমি মনে করি রোলিং অ্যাপেন্ডার অবশ্যই অবশ্যই (যুক্তিযুক্তভাবে) সেটিংটিকে অগ্রাহ্য করবে যেহেতু সংজ্ঞা অনুসারে ফাইলটি পুনরায় পুনরায় নির্মাণ করা হয় যখন অ্যাপ্লিকেশনটি পুনরায় চালু / পুনরায় ব্যবহার করা হয়। অ্যাপ্লিকেশন শুরু হওয়ার সাথে সাথে তাত্ক্ষণিক রোলওভারটির পক্ষে এটি গুরুত্বপূর্ণ।
সিস্টেম ভেরিয়েবল ব্যবহার করে সিআই থেকে সহজ পরিবর্তন সক্ষম করতে আমি কনফিগারেশনকে কোডে সরিয়ে নিয়েছি। আমি ফাইলের নামের জন্য এই কোডটি ব্যবহার করেছি এবং ফলাফল হ'ল 'Log_03-23-2020.log'
log4net.Repository.ILoggerRepository repository = LogManager.GetRepository(Assembly.GetEntryAssembly());
Hierarchy hierarchy = (Hierarchy)repository;
PatternLayout patternLayout = new PatternLayout();
patternLayout.ConversionPattern = "%date %level - %message%newline%exception";
patternLayout.ActivateOptions();
RollingFileAppender roller = new RollingFileAppender();
roller.AppendToFile = true;
roller.File = "Log_";
roller.DatePattern = "MM-dd-yyyy'.log'";
roller.Layout = patternLayout;
roller.MaxFileSize = 1024*1024*10;
roller.MaxSizeRollBackups = 10;
roller.StaticLogFileName = false;
roller.RollingStyle = RollingFileAppender.RollingMode.Composite;
roller.ActivateOptions();
hierarchy.Root.AddAppender(roller);