| 介绍日志保存到文本文件和ms sql server的方法  有logweb示例项目Logtxt文件夹下面为保存到文本文件的完整配置文件,LogSql文件夹下面为保存到数据库mssql server的完整配制文件 源代码下载 日志信息保存到.txt文件  1 在http://logging.apache.org/log4net/downloads.html”下载  下载incubating-log4net-1.2.10.Zip文件,解压 在log4net-1.2.10\src下面将log4net.sln用Visual Studio.NET打开,编译后可以得到log4net.dll  你在解压的文件夹下面还可以看到examples\net\1.0,你将cs-examples方案打开,将看到多个例子子,是学习的好资料 2 新建项目logweb,添加引用log4net.dll 3 在文件AssemblyInfo.cs下面加入  [assembly:log4net.Config.XmlConfigurator(ConfigFile="web.config",Watch=true)]    其中是ConfigFile="web.config"的web.config是你的配置文件名称, 这将在第5步中提到 你将该代码加入Global.asax文件中的namespace前面也可以 4 在文件Global.asax中  protected void Application_Start(Objectsender, EventArgs 
              e)         {               log4net.Config.XmlConfigurator.Configure();         } 5 定义配置文件 配置信息可以放在任意的文件中。  可以是在程序的配置文件里,如AssemblyName.config或web.config.  也可以是你取的任意名称的文件AppName.exe.Resc等  log4net框架会在相对于AppDomain.CurrentDomain.BaseDirectory属性定义的目录路径下查找配置文件。框架在配置文件里要查找的唯一标识是<log4net>标签。一个完整的配置文件的例子如下 <log4net debug="false">      <!-- 定义根日志对象 里面只有两个属性 level 和 
              appender-ref           level 
              一个            appender-ref 
              可以多个 即定义支持使用的多个Appender对象        -->     <root>        <level value="DEBUG" 
              />         <appender-ref ref="LogFileAppender" 
              />    </root>     <!--具体定义支持某个Appender对象          LogFileAppender为Appender对象的名称          type为Appender对象的类型            有如下的              log4net.Appender.AdoNetAppender;             log4net.Appender.UdpAppender;            log4net.Appender.ConsoleAppender            在命名空见log4net.Appender下面还有很多            如果下载了,去文件:log4net-1.2.10\doc\release\config-examples.html            上面还有很多例子            不同的Appender对象还有不同的param            具体可以去config-examples.html        -->     <appender name="LogFileAppender"type="log4net.Appender.FileAppender" 
              >         <!--             定义文件和文件的路径 
              ,特别注意             如果未有指定路径有可能出现错误 
              ,具体原因目前不清楚                     -->         <param name="File" 
              value="C:\Applog.txt" />                  <param name="datePattern" 
              value="yyyy-MM-dd HH:mm" />         <!--          -->         <param name="AppendToFile" 
              value="true" />         <!--          -->         <layout type="log4net.Layout.PatternLayout">              <param 
              name="ConversionPattern" value="%d [%t] %-5p %c [%x] 
              -%m%n" />         </layout>     </appender> </log4net> 我们逐步描述下我们使用的日志:     <root>        <level value="DEBUG" 
              />         <appender-ref ref="LogFileAppender" 
              />    </root> root代表 代表了根日志 <level value="DEBUG" /> 代表了日志级别  在<root>标签里,可以定义level级别值和Appender的列表。如果没有定义LEVEL的值,则缺省为DEBUG。可以通过<appender-ref>标签定义日志对象使用的Appender对象。<appender-ref>声明了在其他地方定义的Appender对象的一个引用。在一个logger对象中的设置会覆盖根日志的设置。而对Appender属性来说,子日志对象则会继承父日志对象的Appender列表。 <appender name="LogFileAppender"type="log4net.Appender.FileAppender" 
              > 定义子日志对象 ,不同的Appender对象还有不同的param,具体可以去config-examples.html 6 在界面WebForm1.aspx上面 拖放一个button 在事件里面写如代码: log4net.ILog log =log4net.LogManager.GetLogger("AA");          //log.Logger.Name  log.Debug("这是我在使用Log4Net"); 运行应用程序,点击button 。  在C:\下面打开文件Applog.txt 可以看到我们写的日志 日志信息保存到MSSQL数据库中  1-4步骤与将“日志信息保存到.txt文件”相同 5        建立数据表 假如  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 )    6         定义日志文件其中注释处为注意的地方,特注意要写好连接的数据库的字符串。   <configSections>  <section name="log4net"type="log4net.Config.Log4NetConfigurationSectionHandler, 
              log4net"/> </configSections> <log4net debug="false">    <root>     <levelvalue="ALL"/>              <appender-ref ref="ADONetAppender"/>          </root>    <!--      定义loger的名称和使用的appender    -->    <logger name="AA">     <levelvalue="ALL"/>               <appender-ref ref="ADONetAppender"/>                       </logger>           <appender name="ADONetAppender"type="log4net.Appender.AdoNetAppender">     <!--     定义几条存入数据库 有2条时才写入数据库,没有两条叫缓存    -->     <bufferSize value="2" />      <connectionType value="System.Data.SqlClient.SqlConnection,System.Data, 
              Version=1.0.3300.0, Culture=neutral,PublicKeyToken=b77a5c561934e089" 
              />      <connectionStringvalue="database=Northwind;server=CEC-HUANGXX;UserID=sa;Password=sa" 
              />     <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> 7 在界面WebForm1.aspx上面 拖放一个button 在事件里面写如代码: log4net.ILog log =log4net.LogManager.GetLogger("AA");          //log.Logger.Name log.Debug("这是我在使用Log4Net"); 运行应用程序,多次点击button 。  在数据库里面去查询,就可以看到日中记录 |