webform C# log4net不起作用 5種 原因

第二次配置log4net,作爲記錄吧。

至少有一個類文件中包含:

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

在命名空間上面。


1、假設你引用ok,

2、web.config配置Ok,形如:

<?xml version="1.0"?>
<!--
    注意: 除了手動編輯此文件以外,您還可以使用
    Web 管理工具來配置應用程序的設置。可以使用 Visual Studio 中的
     “網站”->“Asp.Net 配置”選項。
    設置和註釋的完整列表在
    machine.config.comments 中,該文件通常位於
    \Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration>

    <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"  />
        <!--<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />-->
    </configSections>
    
    <log4net>
        <!--<appender name="OracleAppender" type="log4net.Appender.OracleAppender">-->
        <appender name="AdoNetAppender_Oracle" type="log4net.Appender.AdoNetAppender">
            <bufferSize value="1" />

            <connectionType value="System.Data.OracleClient.OracleConnection, System.Data.OracleClient" />
            <connectionType value="System.Data.OracleClient.OracleConnection, System.Data.OracleClient" />

            <connectionString value="DATA SOURCE=ORCL;USER ID=AAA;PASSWORD=AAA"/>
            <commandText value="INSERT INTO LOG4NET (LOG_ID, LOG_DATE, LOG_LEVEL, LOG_IDENTITY, LOG_MESSAGE, LOG_EXCEPTION, LOG_LOGGER, LOG_SOURCE) VALUES (LOG4NET_SEQ.nextval, :log_date, :log_level, :log_identity, :log_message, :log_exception, :logger, :source)" />
            <parameter>
                <parameterName value=":log_date" />
                <dbType value="DateTime" />
                <layout type="log4net.Layout.RawTimeStampLayout">
                    <conversionPattern value="%d{yyyy/MM/dd HH:mm:ss}" />
                </layout>
            </parameter>
            <parameter>
                <parameterName value=":log_level" />
                <dbType value="String" />
                <size value="10" />
                <layout type="log4net.Layout.PatternLayout">
                    <conversionPattern value="%level" />
                </layout>
            </parameter>
            <parameter>
                <parameterName value=":log_identity" />
                <dbType value="String" />
                <size value="100" />
                <layout type="log4net.Layout.PatternLayout">
                    <conversionPattern value="%identity" />
                </layout>
            </parameter>
            <parameter>
                <parameterName value=":log_message" />
                <dbType value="String" />
                <size value="4000" />
                <layout type="log4net.Layout.PatternLayout">
                    <conversionPattern value="%m" />
                </layout>
            </parameter>
            <parameter>
                <parameterName value=":log_exception" />
                <dbType value="String" />
                <size value="4000" />
                <layout type="log4net.Layout.PatternLayout">
                    <conversionPattern value="%exception" />
                </layout>
            </parameter>
            <parameter>
                <parameterName value=":logger" />
                <dbType value="String" />
                <size value="255" />
                <layout type="log4net.Layout.PatternLayout">
                    <conversionPattern value="%logger" />
                </layout>
            </parameter>
            <parameter>
                <parameterName value=":source" />
                <dbType value="String" />
                <size value="1000" />
                <layout type="log4net.Layout.PatternLayout">
                    <conversionPattern value="%file:%line" />
                </layout>
            </parameter>
        </appender>

        <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
            <param name="File" value="Log\\" />
            <param name="AppendToFile" value="true" />
            <param name="MaxFileSize" value="10240" />
            <param name="MaxSizeRollBackups" value="100" />
            <param name="StaticLogFileName" value="false" />
            <param name="DatePattern" value="yyyyMMdd&quot;.log&quot;" />
            <param name="RollingStyle" value="Date" />
            <layout type="log4net.Layout.PatternLayout">
                <param name="ConversionPattern" value="%n日誌時間:%d [%t] %n日誌級別:%-5p %n日 志 類:%c [%x] %n%m %n" />
            </layout>
        </appender>

        <logger name="loginfo">
            <level value="INFO" />
            <appender-ref ref="InfoAppender" />
        </logger>

        <logger name="AdoNetAppender_Oracle">
            <level value="INFO"/>
            <appender-ref ref="AdoNetAppender_Oracle" />
        </logger>

        <root>
            <level value="All"/>
            <appender-ref ref="AdoNetAppender_Oracle"/>
            <appender-ref ref="InfoAppender"/>
        </root>
    </log4net>

    
    <connectionStrings/>
        <system.web>
            <!--
            設置 compilation debug="true" 將調試符號插入
            已編譯的頁面中。但由於這會
            影響性能,因此只在開發過程中將此值
            設置爲 true。
        -->
            <compilation debug="false"/>
            <!--
            通過 <authentication> 節可以配置 ASP.NET 使用的
            安全身份驗證模式,
            以標識傳入的用戶。
        -->
            <authentication mode="Windows"/>

        </system.web>

        <system.diagnostics>
            <trace autoflush="true"   >

                <listeners>

                    <add name="textWriteTraceListener"
                         type="System.Diagnostics.TextWriterTraceListener"
                         initializeData="C:\TEMP\log4net.txt" />
                </listeners>
            </trace>

        </system.diagnostics>

    <appSettings>
        <add key="BJ_SHOP" value="BJ002,BJ003,BJJC,HF001,HZ001,SH001"/>

        <add key="log4net.Internal.Debug" value="true "/>

    </appSettings>
    
</configuration>


3、Global.asax文件中包含如下語句:

    void Application_Error(object sender, EventArgs e)
    {
        // 在出現未處理的錯誤時運行的代碼
        Exception objErr = Server.GetLastError().GetBaseException();
        log4net.ILog log = log4net.LogManager.GetLogger(Request.Url.ToString());
        log.ErrorFormat("發生異常頁:{0}<br>異常信息{1}<br>source:{2}", Request.Url.ToString(), objErr.Message, objErr.StackTrace);
        Server.ClearError();

    }

4、靜態類文件包含,程序運行前生成:

       public static log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);


5、就是在在最上面說的:

至少有一個靜態類文件中包含:

[assembly: log4net.Config.XmlConfigurator(Watch = true)] 啓動對象。

在命名空間上面。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章