1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

مشاهده لاگ NHibernate در Visual Studio

شروع موضوع توسط minaaa ‏19/11/11 در انجمن برنامه نویسی

  1. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    [h=1][/h]
    [​IMG]
    اگر پنجره Output را در ویژوال استودیو به هنگام Debug باز کرده و Show output from را برابر Debug قرار داده باشید می‌بینید که ویژوال استودیو خیلی از فعالیت‌های داخلی برنامه را از جمله Load اسمبلی‌ها یا Exceptionهای برنامه را مدام در آنجا فهرست می‌کند. همین کار را در مورد فعالیت‌های داخلی NHibernate هم می‌توان انجام داد.




    NHibernate به طور داخلی از log4net برای log فعالیت‌های داخلی خودش استفاده می‌کند. NHibernate تقریباً تمام کارهایش را log می‌کند. به همین دلیل با دنبال کردن این logها هم می‌توان به بسیاری از اشکالات و ایرادات برنامه‌های مختلف پی برد و هم می‌توان مقدار زیادی از مکانیزم داخلی NHibernate را یاد گرفت. روال معمول برای مشاهده این log ریختن آن در یک فایل text و بررسی آن می‌باشد. اما راه ساده‌تر و موثرتری هم وجود دارد. آن هم این است که به log4net بگوییم خروجی log را به جای فایل text به پنجره Output ویژوال استودیو کپی کند.

    برای انجام این کار کافی است بعد از معرفی log4net در web.config یا app.config، خطوط زیر را هم اضافه کنید:


    [TABLE]
    [TR]
    [TD="class: gutter"] 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    [/TD]
    [TD="class: code"] <LOG4NET debug="true">
    <APPENDER type="log4net.Appender.TraceAppender, log4net" name="trace">
    <LAYOUT type="log4net.Layout.PatternLayout, log4net">
    <PARAM name="ConversionPattern" value=" %date %level %message%newline" /> </LAYOUT>
    </APPENDER>
    <ROOT>
    <PRIORITY value="ALL" />
    <APPENDER-REF ref="trace" />
    </ROOT>
    <LOGGER name="NHibernate">
    <LEVEL value="INFO" />
    </LOGGER>
    </LOG4NET>

    [/TD]
    [/TR]
    [/TABLE]




    بعد از انجام این کار بایستی در ابتدای شروع به کار برنامه، log4net را هم با عبارت log4net.Config.XmlConfigurator.Configure();‎ مقدار دهی (initialize) کنید.

    البته غیر از این یک راه دیگر هم وجود دارد. در راه دوم یک فایل مستقل برای log4net در نظر گرفته می‌شود به اسم log4net.config. خطوط بالا در این فایل کپی شده (خط اول فایل‌های xml فراموش نشود) و سپس برای راه اندازی اولیه log4net به جای روش قبلی از XmlConfigurator.Configure(new FileInfo("log4net.config"));‎ استفاده می‌شود.

    به نقل از iransec