zoukankan      html  css  js  c++  java
  • Log4Net

    本人测试源码下载地址:http://files.cnblogs.com/chenghu/Log4Net_Test.rar 

    一 、保存到文件的方法

    1,添加log4net.dll的引用。

    2,替换一下配置文件。(本配置文件为测试使用 实际开发会有更多节点)

    <?xml version="1.0" encoding="utf-8"?>
    
    <configuration>
    
      <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-1.0" />
      </configSections>
      <log4net>
        <root>
          <level value="ALL" />
          <appender-ref ref="LogFileAppender" />
        </root>
        <appender name="LogFileAppender"  type="log4net.Appender.FileAppender" >
          <param name="File" value="Loglog-file.txt" />         //日志文件保存的地方
          <param name="AppendToFile" value="true" />
          <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern"  value="记录时间:%d     线程 ID:[%t]    日志级别:%-5p     出错类:%logger property:[%property{NDC}]     错误描述:%m%n" />
          </layout>
        </appender>
      </log4net>
    
      <system.web>
        <compilation debug="true" targetFramework="4.0" />
      </system.web>
    
    </configuration>
    Web.config Code

    3,在该web项目中的AssemblyInfo.cs文件的最后一行中添加以下代码:

    [assembly: log4net.Config.DOMConfigurator(ConfigFile = "Web.config", Watch = true)] 

    4,web项目的Default.aspx.cs的Page_Load中添加

           protected void Page_Load(object sender, EventArgs e)
            {
                log4net.ILog log = log4net.LogManager.GetLogger("MyLogger");
                log.Debug("hello");
            }
    Default.aspx Code

    参看来源:http://database.ctocio.com.cn/analysis/85/8992585_3.shtml

    二、保存到数据库的方法

    log4net是一个优秀的开源日志项目,现将本人使用写成一个demo,如下

    1,添加log4net.dll的引用。

    2:建立数据表
    CREATE TABLE [dbo].[Log] (
    [Id] [int] IDENTITY (1, 1) NOT NULL,
    [Date] [datetime] NOT NULL,
    [Thread] [varchar] (255) NOT NULL,
    [Level] [varchar] (50) NOT NULL,
    [Logger] [varchar] (255) NOT NULL,
    [Message] [varchar] (4000) NOT NULL,
    [Exception] [varchar] (2000) NULL
    )

    3:编写配置文件

    <configuration> 
    <configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> 
    </configSections> 
    
    <system.web> 
    <!-- 
    ...... 
    --> 
    </system.web> 
    
    <log4net> 
    
    <root> 
    <level value="ALL" /> 
    <appender-ref ref="ADONetAppender" /> 
    </root> 
    
    <!-- 
    <logger name="testApp.Logging"> 
    <level value="ALL"/> 
    <appender-ref ref="ADONetAppender" /> 
    
    </logger> 
    --> 
    
    <appender name="ADONetAppender" type="log4net.Appender.ADONetAppender"> 
    <bufferSize value="10" /> 
    <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    <connectionString value="server=localhost;database=demo;user id=sa;password=123456" /> 
    <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" /> 
    <parameter> 
    <parameterName value="@log_date" /> 
    <dbType value="DateTime" /> 
    <layout type="log4net.Layout.RawTimeStampLayout" /> 
    </parameter> 
    <parameter> 
    <parameterName value="@thread" /> 
    <dbType value="String" /> 
    <size value="255" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%thread" /> 
    </layout> 
    </parameter> 
    <parameter> 
    <parameterName value="@log_level" /> 
    <dbType value="String" /> 
    <size value="50" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%level" /> 
    </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="@message" /> 
    <dbType value="String" /> 
    <size value="4000" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%message" /> 
    </layout> 
    </parameter> 
    <parameter> 
    <parameterName value="@exception" /> 
    <dbType value="String" /> 
    <size value="2000" /> 
    <layout type="log4net.Layout.ExceptionLayout" /> 
    </parameter> 
    </appender> 
    
    </log4net> 
    
    </configuration> 
    Web.Config Code

    特别说明<bufferSize value="10" />,这是log信息记录的缓冲大小,(比如只有log信息记录达到10,
    才会将log信息记录写入数据库)

    4:在Global.asax.cs中
    protected void Application_Start(Object sender, EventArgs e)
    {
    //读取配置信息
    log4net.Config.DOMConfigurator.Configure();
    }


    5:在web项目的Default.aspx.cs文件里的Page_Load中添加

    protected void Page_Load(object sender, EventArgs e)
            {
                log4net.ILog log
    = log4net.LogManager.GetLogger("MyLogger");
                log.Debug(
    "hello"); 
                log.Info("log日志");
            }

  • 相关阅读:
    多进程要时刻当心的点
    pairs和ipairs用的迭代器不一样
    #pragma pack(push,1) & #pragma pack(pop)
    负数取模不一定是正数
    切记一定要get~
    GAME有计时器,大厅没有计时器的原因
    每天一个linux命令(1):ls命令
    服务端发的某个short字段存到buf里是正值,存完在看就是0的问题
    生成函数&多项式全家桶导学案
    [Z]董的博客数据结构与算法汇总
  • 原文地址:https://www.cnblogs.com/chenghu/p/3663107.html
Copyright © 2011-2022 走看看