第一步:

添加并应用Log4net.dll。然后在Web.config文件中添加下面的配置局

  1. <configSections>
  2.     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  3. </configSections>

第二步:

新建Log4Net.config的配置文件,并在其中添加下面的配置信息:

  1.  
  2. <?xml version="1.0" encoding="UTF-8"?>
  3. <log4net debug="false">
  4.  
  5.   <!--按日期分割日志文件 一天一个-->
  6.   <appender name="LogFileAppenderByDate" type="log4net.Appender.RollingFileAppender" >
  7.  
  8.     <!--是否续写-->
  9.     <param name="AppendToFile" value="true" />
  10.     <!--最小锁定模型以允许多个进程可以写入同一个文件-->
  11.     <param name="LockingModel" value="log4net.Appender.FileAppender.MinimalLock" />
  12.     <param name="StaticLogFileName" value="true" />
  13.     <!--保存路径-->
  14.     <param name="File" value="d:\Log\\" />
  15.     <param name="DatePattern" value="yyyy-MM-dd.LOG" />
  16.     <param name="StaticLogFileName" value="false" />
  17.     <param name="RollingStyle" value="Date" />
  18.     <layout type="log4net.Layout.PatternLayout">
  19.       <param name="ConversionPattern" value="时间:%d %n级别:%level %n类名:%c%n文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n%n" />
  20.     </layout>
  21.   </appender>
  22.  
  23.   <!--按日志容量分割日志文件 10KB一个-->
  24.   <appender name="LogFileAppenderBySize" type="log4net.Appender.RollingFileAppender" >
  25.     <!--是否续写-->
  26.     <param name="AppendToFile" value="true" />
  27.     <!--最小锁定模型以允许多个进程可以写入同一个文件-->
  28.     <param name="LockingModel" value="log4net.Appender.FileAppender.MinimalLock" />
  29.  
  30.     <param name="StaticLogFileName" value="true" />
  31.  
  32.     <!--按照文件的大小进行变换日志文件-->
  33.     <param name="RollingStyle" value="Size" />
  34.     <param name="File" value="log.txt" />
  35.     <!--单个文件最大数量 好像只有在 按Size分割时有效-->
  36.     <param name="MaximumFileSize" value="200KB"/>
  37.     <!--保留的log文件数量 超过此数量后 自动删除之前的   好像只有在 按Size分割时有效-->
  38.     <param name="MaxSizeRollBackups" value="2" />
  39.  
  40.     <param name="StaticLogFileName" value="false" />
  41.     <layout type="log4net.Layout.PatternLayout">
  42.       <param name="ConversionPattern" value="发生时间:%d %n事件级别:%level %n相关类名:%c%n程序文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n%n" />
  43.     </layout>
  44.   </appender>
  45.  
  46.   <!--记录日志到数据库-->
  47.   <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
  48.     <bufferSize value="1" />
  49.     <!--缓冲大小-->
  50.     <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  51.     <connectionString value="Data Source=.\SQLEXPRESS;Initial Catalog=CVDS;User ID=sa;Password=sasa" />
  52.     <commandText value="INSERT INTO Log([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
  53.     <parameter>
  54.       <parameterName value="@log_date" />
  55.       <dbType value="DateTime" />
  56.       <layout type="log4net.Layout.RawTimeStampLayout" />
  57.     </parameter>
  58.     <parameter>
  59.       <parameterName value="@thread" />
  60.       <dbType value="String" />
  61.       <size value="255" />
  62.       <layout type="log4net.Layout.PatternLayout">
  63.         <conversionPattern value="%thread" />
  64.       </layout>
  65.     </parameter>
  66.     <parameter>
  67.       <parameterName value="@log_level" />
  68.       <dbType value="String" />
  69.       <size value="50" />
  70.       <layout type="log4net.Layout.PatternLayout">
  71.         <conversionPattern value="%level" />
  72.       </layout>
  73.     </parameter>
  74.     <parameter>
  75.       <parameterName value="@logger" />
  76.       <dbType value="String" />
  77.       <size value="255" />
  78.       <layout type="log4net.Layout.PatternLayout">
  79.         <conversionPattern value="%logger" />
  80.       </layout>
  81.     </parameter>
  82.     <parameter>
  83.       <parameterName value="@message" />
  84.       <dbType value="String" />
  85.       <size value="4000" />
  86.       <layout type="log4net.Layout.PatternLayout">
  87.         <conversionPattern value="%message" />
  88.       </layout>
  89.     </parameter>
  90.     <parameter>
  91.       <parameterName value="@exception" />
  92.       <dbType value="String" />
  93.       <size value="2000" />
  94.       <layout type="log4net.Layout.ExceptionLayout" />
  95.     </parameter>
  96.   </appender>
  97.  
  98.   <root>
  99.     <level value="INFO" />
  100.     <!--启用按日期分割-->
  101.     <appender-ref ref="LogFileAppenderByDate" />
  102.     <!--启用按容量分割-->
  103.     <!--<appender-ref ref="LogFileAppenderBySize" />-->
  104.     <!--启用保存到数据库-->
  105.     <!--<appender-ref ref="AdoNetAppender" />-->
  106.   </root>
  107.  
  108. </log4net>

第三步:

在Global.asax文件中的Application_Start事件中添加如下代码:

  1.  protected void Application_Start(object sender, EventArgs e)
  2.   {
  3.        // Code that runs on application startup
  4.       log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(Server.MapPath("Log4Net.config")));  
  5.   }

第四步:调用LOG4net 写日志

  1.          protected void Button2_Click(object sender, EventArgs e)
  2.         {
  3.                      ILog logs = LogManager.GetLogger(typeof(TEST));
  4.  
  5.            logs.Fatal("Excption:这里就是要提示的LOG信息");
  6.         }

也可以通过写一个LogHelper.cs类进行封装:

  1.  
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Web;
  5. using log4net;
  6.  
  7. namespace SBIT.Web.Class
  8. {
  9.     /// <summary>
  10.     /// 日志辅助类
  11.     /// </summary>
  12.     public class LogHelper
  13.     {
  14.         private static ILog log;
  15.         private static LogHelper logHelper = null;
  16.         /// <summary>
  17.         /// 初始化
  18.         /// </summary>
  19.         /// <returns></returns>
  20.         public static ILog GetInstance()
  21.         {
  22.             logHelper = new LogHelper(null);
  23.  
  24.             return log;
  25.         }
  26.         /// <summary>
  27.         /// 初始化
  28.         /// </summary>
  29.         /// <param name="configPath"></param>
  30.         /// <returns></returns>
  31.         public static ILog GetInstance(string configPath)
  32.         {
  33.             logHelper = new LogHelper(configPath);
  34.  
  35.             return log;
  36.         }
  37.         /// <summary>
  38.         /// 构造函数
  39.         /// </summary>
  40.         /// <param name="configPath"></param>
  41.         private LogHelper(string configPath)
  42.         {
  43.             if (!string.IsNullOrEmpty(configPath))
  44.             {
  45.                 log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
  46.                 log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(configPath));
  47.             }
  48.             else
  49.             {
  50.                 log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
  51.             }
  52.         }
  53.  
  54.     }
  55. }

通过封装类写日志的方法如下:

  1.  private static readonly ILog logs = LogHelper.GetInstance(); //LogManager.GetLogger(typeof(TEST));
  2.         protected void Button2_Click(object sender, EventArgs e)
  3.         {
  4.                 logs.Fatal("Excption:这里就是要提示的LOG信息");
  5.         }

log4net部分配置说明的更多相关文章

  1. log4net一些配置说明

    <configuration> <configSections> <section name="log4net" type="System. ...

  2. log4net详细配置说明

    原文地址:http://blog.sina.com.cn/s/blog_671486bc01011rdj.html 1.概述 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记 ...

  3. C# log4net相关配置说明

    添加相关文件到工程 链接: https://pan.baidu.com/s/1o83Juo6 密码: inkg 下载附件, 把里的log4net.dll 和 log4net.config 复制到工程目 ...

  4. 也用 Log4Net 之将日志记录到数据库的配置 (一)

    也用 Log4Net  之将日志记录到数据库的配置 (一) 前段时间我一直想做一个通用一点的日志记录系统,可以便于不同的业务组调用进行日志记录及分析.本来打算着自己下手写一个,后面发现各业务组可能会需 ...

  5. Log4Net 日志记录的实现

    一.前言 在上一篇文章[(转载)非常完善的Log4net配置详细说明]介绍了Log4Net的配置说明,如果不知道的可以去看看,这里我们就介绍一下日志记录的实现,说得都比较基础,所以大神请绕过. 二.L ...

  6. Log4Net 之将日志记录到数据库的配置 (一)

    原文:Log4Net 之将日志记录到数据库的配置 (一) 前段时间我一直想做一个通用一点的日志记录系统,可以便于不同的业务组调用进行日志记录及分析.本来打算着自己下手写一个,后面发现各业务组可能会需要 ...

  7. C# 日志的配置流程

    1. 下载log4net.dll文件 http://download.csdn.net/detail/abc456456456456/7653857 2. 项目中引用此dll 3. appconfig ...

  8. log4net自定义扩展及配置说明

    log4net文件保存配置我就不说太多了,网上一大把的,数据库配置其实网上也有,只是我第一次按照网上的配置没有跑通,我就说下数据库配置需要注意的地方吧. 下面是一个log4net的数据库代码配置 pu ...

  9. log4net其中layout节点的配置说明

    其中layout节点的配置说明:        %m(message):输出的日志消息:        %n(newline):换行:        %d(datetime):输出当前语句运行的时刻: ...

随机推荐

  1. 3.开发Java消息驱动bean实例代码

    java消息服务(JMS)是用于访问企业消息系统的开发商中立的API.企业消息系统可以协助应用软件通过网络进行消息交互.应用程序A发送一条消息到消息服务器的某个目的地(Destination),然后消 ...

  2. java之多线程 二

    线程的生命周期: 当线程被创建并被启动时,它既不是一启动就进入了执行状态,在线程的生命周期中,它要经过new(新建),就绪(Runnable),运行(Running),阻塞(Blocked),dead ...

  3. Andorid 反编译App

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/23564065 开发的过程中,有时候可能会去使用别的app里面的图片,参考布局甚至 ...

  4. android第一行代码-6.自定义控件的实现

    0.假设一个应用中标题栏控件都是共用的,如果每个activity都需要设置button,绑定方法,那代码就会很臃肿.那我们可以自定义控件,然后继承这个控件就行了. 自定义控件为TitleLayout, ...

  5. Linux 进程间通讯详解六

    ftok()函数 key_t ftok(const char *pathname, int proj_id); --功能:创建系统建立IPC通讯 (消息队列.信号量和共享内存) 时key值 --参数 ...

  6. IO(七)----转换流

    输入字节流的转换流:InputStreamReader 是字节流通向字符流的桥梁. 输出字节流的转换流:OutputStreamWriter  可以把输出字节流转换成输出字符流 .  是符流通向字节流 ...

  7. LeetCode-70-Climbing Stairs

    You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...

  8. 你真的理解Java的按引用传递吗?

    首先我们来看下面这段代码: public class Test1 { String a = "123"; public static void change(Test1 test) ...

  9. canvas链式弹性运动

    上一课我学习了相对于鼠标为目标点的弹性运动,这次就学习了如何以上一个球为目标点的弹性运动,这次的函数比较复杂,首先分成了如下几个函数,首先定义了一个球的model,之后添加了4个球,在加载中调用了动画 ...

  10. 大图居中,以1920px为例

    <div style="overflow: hidden; position: relative;"> <img src="img.jpg" ...