লগ 4 নেট ক্রমিক ও লগিং স্তর


127

এই সাইটটি বলে

লগারগুলি স্তর নির্ধারিত হতে পারে। স্তরগুলি log4net.Core.Level শ্রেণীর উদাহরণ। নিম্নলিখিত স্তরগুলি অগ্রাধিকারের ক্রম হিসাবে সংজ্ঞায়িত করা হয়েছে :

  • সব
  • ডিবাগ
  • তথ্য
  • সতর্ক
  • ত্রুটি
  • মারাত্মক
  • অফ

DEBUG এর কাছে সর্বনিম্ন অগ্রাধিকার রয়েছে এবং ERROR বেশি।

প্রশ্ন

  • আমি যদি ন্যূনতম এবং ম্যাক্সের উদাহরণসই DEBUG এবং ERROR সেট করি তবে এটি সর্বদা DEBUG, INFO, WARN এবং ERROR মুদ্রণ করে। সর্বনিম্ন এবং সর্বোচ্চ ফিল্টার ব্যবহার ছাড়াই Without যদি আমি ERROR নির্দিষ্ট করি (লগিং লেভেল = ERROR) এটিতে DEBUG, INFO এবং WARN অন্তর্ভুক্ত থাকবে
 <filter type="log4net.Filter.LevelRangeFilter">
     <param name="LevelMin" value="ERROR"/>
     <param name="LevelMax" value="ERROR"/>
 </filter>

মিনিট এবং সর্বাধিক ফিল্টার পরিবর্তে। লগিংয়ের জন্য কোনও স্তরটি কনফিগার করা এবং এর নীচে অন্য সমস্ত স্তর অন্তর্ভুক্ত করা কি সম্ভব?

উদাহরণ - সেট স্তরটিকে ত্রুটি হিসাবে সেট করুন এতে DEBUG, INFO, WARN এবং ERROR অন্তর্ভুক্ত থাকবে। লগ 4 নেট দিয়ে কি এটি সম্ভব?

মন্তব্যের একটির ভিত্তিতে লগ 4 নেট কনফিগারেশন পোস্ট করা:

     <?xml version="1.0" encoding="utf-8" ?>
     <configuration>
        <configSections>
            <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
        </configSections >
        <log4net debug="true">
  <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
        <layout type="log4net.Layout.XMLLayout" /> -->
        <param name="File" value="TestLog.log" />
        <param name="AppendToFile" value="false" />
        <layout type="log4net.Layout.PatternLayout">
            <header type="log4net.Util.PatternString" value="[START LOG] %newline" />
            <footer type="log4net.Util.PatternString" value="[END LOG] %newline" />
            <conversionPattern value="%d [%t] %-5p - %m%n" />
        </layout>
        <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="DEBUG"/>
            <param name="LevelMax" value="ERROR"/>
        </filter>
    </appender>
<root>
        <level value="ALL" />
        <appender-ref ref="LogFileAppender" />
    </root>
    <logger name="log4NetExample">
        <!-- <appender-ref ref="B" /> -->
        <level value="ALL" />
        <appender-ref ref="LogFileAppender" />
    </logger>
</log4net>


আপনি কি INFO এ লগিং স্তর নির্ধারণ করার চেষ্টা করেছেন এবং এতে INFO এবং DEBUG অন্তর্ভুক্ত রয়েছে কিনা তা পরীক্ষা করে দেখেছেন?
ডিফল্ট

5
DEBUG এর কাছে সর্বনিম্ন অগ্রাধিকার রয়েছে এবং ত্রুটি সর্বাধিক। এই না অগ্রাধিকার , কিন্তু একটি থ্রেশহোল্ড আপ বা একটি বার্তা উপরে লগ করা হবে না।
আর শেরুর্স

আপনি কি কেবল ব্যবহার করার চেষ্টা করেছেন levelMax? আমি মনে করি যে এটির নীচে সমস্ত কিছু অন্তর্ভুক্ত করা উচিত যদি আপনি levelMin
এএন

উত্তর:


90

এটি লগারদের কী স্তরে নির্ধারিত হতে পারে কোন স্তরে রেকর্ড করা হয়েছে তা বুঝতে সহায়তা করতে পারে। স্তরগুলি log4net.Core.Level শ্রেণীর উদাহরণ। নীচের স্তরগুলি তীব্রতা বাড়ানোর ক্রম হিসাবে সংজ্ঞায়িত করা হয় - লগ স্তর Level

প্রতিটি সেটিং স্তরের জন্য রেকর্ড করা স্তরের সংখ্যা:

 ALL    DEBUG   INFO    WARN    ERROR   FATAL   OFF
All                        
DEBUG  DEBUG                  
INFO   INFO   INFO               
WARN   WARN   WARN   WARN           
ERROR  ERROR  ERROR  ERROR  ERROR      
FATAL  FATAL  FATAL  FATAL  FATAL  FATAL  
OFF    OFF    OFF    OFF    OFF    OFF    OFF

2
দুঃখিত আমি ভেবেছিলাম এটি ডাব্লুডব্লিউজি, কেন হয় না ??
মেল পামা

1
উত্তরের সঠিক বিন্যাসের জন্য আপনি সাইটের এই অংশটি একবার দেখে নিতে পারেন
Jarod Moser

36

বেশিরভাগ অ্যাপ্লিকেশনগুলির জন্য আপনি সর্বনিম্ন স্তর নির্ধারণ করতে চান তবে সর্বোচ্চ স্তর নয়।

উদাহরণস্বরূপ, আপনার কোডটি ডিবাগ করার সময় ন্যূনতম স্তরটি DEBUG এ সেট করে এবং উত্পাদনে এটি WARN এ সেট করে।


দয়া করে আমার আপডেট হওয়া প্রশ্নটি পরীক্ষা করুন, আমার প্রশ্নটি স্তরগুলি এবং লগ স্টেটমেন্টের জন্য
শিভা

পরিবর্তন করুন <level value="ALL" /> মধ্যে <level value="WARN" />এবং আপনি শুধুমাত্র সতর্কবাণী এবং ত্রুটি পাবেন।
ইলিয়া কোগান

2
না, এটি কোনও কাজে দেয় না। আমি চেঞ্জ করার চেষ্টা করেছি। আমি নীচে অগ্রাধিকারের জন্য লগগুলি দেখতে পাইনি
শিভা

12
অবশ্যই আপনি লগগুলি অগ্রাধিকারের নীচে দেখতে পাবেন না। এটি আপনি ন্যূনতম অগ্রাধিকার সেট করছেন।
ইলিয়া কোগান

19

DEBUG সমস্ত বার্তাগুলি প্রদর্শন করবে, DEBUG বার্তাগুলি ছাড়াও সমস্ত তথ্য প্রদর্শন করবে on
সাধারণত একজন INFO বা WARN ব্যবহার করে। এটি কোম্পানির নীতিতে নির্ভর করে।


দয়া করে আমার আপডেট হওয়া প্রশ্নটি পরীক্ষা করুন, আমার প্রশ্নটি স্তরগুলি এবং লগ স্টেটমেন্টের জন্য
শিভা

দয়া করে আপনার সম্পূর্ণ লগ 4 নেট কনফিগারেশন পোস্ট করুন, আপনার দু'জন লগার থাকতে পারে যা হস্তক্ষেপ করছে।
weismat

এবং আমি ব্যক্তিগতভাবে এখনও পর্যন্ত মাত্রা স্তর নির্ধারণ করেছি। আমি মনে করি সম্ভব হলে ন্যূনতম / সর্বোচ্চ সেটিংস এড়ানো উচিত।
weismat

আমি সম্পূর্ণ লগ 4 নেট কনফিগার পোস্ট করেছি। দয়া করে চেক করুন। আমি শিখতে এবং বাস্তবায়নের চেষ্টা করছি।
শিভা

16

সমস্ত লগ 4 নেট স্তরের অগ্রাধিকার সম্পর্কে এখানে কিছু কোড বলা হচ্ছে:

TraceLevel(Level.All); //-2147483648

TraceLevel(Level.Verbose);   //  10 000
TraceLevel(Level.Finest);    //  10 000
    
TraceLevel(Level.Trace);     //  20 000
TraceLevel(Level.Finer);     //  20 000
    
TraceLevel(Level.Debug);     //  30 000
TraceLevel(Level.Fine);      //  30 000
    
TraceLevel(Level.Info);      //  40 000
TraceLevel(Level.Notice);    //  50 000
    
TraceLevel(Level.Warn);      //  60 000
TraceLevel(Level.Error);     //  70 000
TraceLevel(Level.Severe);    //  80 000
TraceLevel(Level.Critical);  //  90 000
TraceLevel(Level.Alert);     // 100 000
TraceLevel(Level.Fatal);     // 110 000
TraceLevel(Level.Emergency); // 120 000
    
TraceLevel(Level.Off); //2147483647


private static void TraceLevel(log4net.Core.Level level)
{
   Debug.WriteLine("{0} = {1}", level, level.Value);
}


10

অন্যরা যেমন উল্লেখ করেছে, সাধারণত সেই স্তরটি লগ করতে সর্বনিম্ন লগিং স্তর এবং এটির চেয়ে আরও গুরুতর অন্য কাউকে নির্দিষ্ট করা ভাল। দেখে মনে হচ্ছে আপনি লগিংয়ের স্তরগুলি কেবল পিছনের দিকে নিয়ে ভাবছেন।

তবে, আপনি যদি পৃথক স্তরের লগিংয়ের জন্য আরও সূক্ষ্ম নিয়ন্ত্রণ পেতে চান তবে আপনি লগ 4 নেটকে নিম্নলিখিত সিনট্যাক্স ব্যবহার করে কেবল এক বা একাধিক নির্দিষ্ট স্তরে লগ করতে বলতে পারেন:

<filter type="log4net.Filter.LevelMatchFilter">
  <levelToMatch value="WARN"/>
</filter>

অথবা ফিল্টারটিতে "অস্বীকার" নোড যুক্ত করে একটি নির্দিষ্ট লগিং স্তর বাদ দিতে।

একাধিক স্তর নির্দিষ্ট করতে আপনি একসাথে একাধিক ফিল্টার স্ট্যাক করতে পারেন। উদাহরণস্বরূপ, আপনি যদি কেবল ওয়ার্ন এবং ফ্যাটাল স্তর চান। আপনি যে স্তরগুলি চেয়েছিলেন তা যদি ধারাবাহিকভাবে থাকে তবে লেভেলরেঞ্জফিল্টারটি আরও উপযুক্ত।

রেফারেন্স ডক: log4net.Filter.LevelMatchFilter

অন্য উত্তরগুলি যদি আপনাকে পর্যাপ্ত তথ্য না দেয় তবে আশা করি এটি লগ 4 নেট থেকে আপনি যা চান তা পেতে সহায়তা করবে।


আহ হ্যাঁ, আমি ব্যক্তিগতভাবে খুঁজছিলাম। তথ্য + ত্রুটি বার্তা চাই তবে ডিবাগ নয় ug এর জন্য ধন্যবাদ.
সরফারাজ

by adding a "deny" node to the filterকীভাবে?
mrhotroad

@ মিঃরোডরোড আমি নিশ্চিত নই যে লগ 4 নেটনের বর্তমান সংস্করণটি ২০১৪ সালের সংস্করণ থেকে কতটা আলাদা তবে এটি লেভেলম্যাচফিল্টার.অ্যাকসেপ্টঅনম্যাচ-এর নথি। logging.apache.org/log4net/release/sdk/html/… সুতরাং আপনি <লেভেলটোম্যাচ মান = "সতর্কতা" একসেপ্টওনম্যাচ = "মিথ্যা" /> করতে পারেন
ulty4 Life

8

এটি সত্যিকারের অফিশিয়াল ডকুমেন্টেশন ( অ্যাপাচি লগ 4 নেট ™ ম্যানুয়াল - ভূমিকা ) জানায় যে নীচের স্তরগুলি রয়েছে ...

  • সব
  • ডিবাগ
  • তথ্য
  • সতর্ক
  • ত্রুটি
  • মারাত্মক
  • অফ

... তবে অদ্ভুতভাবে যখন আমি সমাবেশ log4net.dll দেখি, v1.2.15.0 সিল করা শ্রেণি log4net.Core.Level আমি নীচের স্তরগুলি সংজ্ঞায়িত দেখতে পাই ...

public static readonly Level Alert;
public static readonly Level All;
public static readonly Level Critical;
public static readonly Level Debug;
public static readonly Level Emergency;
public static readonly Level Error;
public static readonly Level Fatal;
public static readonly Level Fine;
public static readonly Level Finer;
public static readonly Level Finest;
public static readonly Level Info;
public static readonly Level Log4Net_Debug;
public static readonly Level Notice;
public static readonly Level Off;
public static readonly Level Severe;
public static readonly Level Trace;
public static readonly Level Verbose;
public static readonly Level Warn;

আমি দীর্ঘদিন ধরে পোস্টশার্প অনবাউন্ডারি এন্ট্রি এবং অনবাউন্ডারিএক্সিটের সাথে একযোগে ট্র্যাক ব্যবহার করছি। আমি ভাবছি কেন এই অন্যান্য স্তরগুলি নথিতে নেই। তদুপরি, এই সমস্ত স্তরের প্রকৃত অগ্রাধিকার কি?


2
এটি মূল্যবান কিসের জন্য, তারা সবাই নীচের লিঙ্কে তালিকাবদ্ধ রয়েছে, তবে তারা মনে হয় কিছুক্ষণের মধ্যে তাদের ম্যানুয়ালগুলি আপডেট করে নি। লগিং.এপাচি.অর্গ.এলগ 4 নেট
এসডিকি /

2
স্তর স্তর; স্তর সূক্ষ্ম; স্তর ফাইনস্ট; আমি এখন থেকে এই তিনটি ব্যবহার করতে যাচ্ছি।
ma mambe

-3

এটির মতো চেষ্টা করুন, এটি আমার পক্ষে কাজ করেছিল

<root>
  <!--<level value="ALL" />-->
  <level value="ERROR" />
  <level value="INFO" />
  <level value="WARN" />     
</root>

এই ত্রুটি 3 ধরণের লগ ইন - ত্রুটি, তথ্য এবং সতর্কতা


7
মতে log4net ডক্স রুট লগার জন্য: "স্তর: ঐচ্ছিক উপাদান এক সর্বোচ্চ অনুমোদিত । এই এটির জন্য লগিং স্তর নির্ধারণ করে এই এটির শুধুমাত্র ঘটনা যে গ্রহণ করব। এই স্তর বা উপরে রয়েছে। "
gonadarian

কেন এই উত্তরটি ভোট দেয়? এটা আমার জন্যও কাজ করছে। অতএব ভোটিং আপ
amilamad

1
কারণ <স্তরের মান = "সতর্কতা" /> যথেষ্ট হবে।
rlesias
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.