您的位置:首页 > 编程语言 > C#

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

2015-10-04 19:47 316 查看
第二次配置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".log"" />

            <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)] 启动对象。
在命名空间上面。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  NET SQLSERVER oracle log4net C#