Log4net 将文件写入数据库的操作

将Log4net 写入数据库的草做,也很见单,主要是对配置文件的操作

<configSections>
    <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
  </configSections>

  <log4net>
    <!--定义输出到文件中-->
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
      <!--定义文件存放位置-->
      <file value="D:/log4netfile.txt"/>
      <!--是否在文件中追加日志信息-->
      <appendToFile value="true"/>
      <!--文件输出以日期方式滚动-->
      <rollingStyle value="Date"/>
      <!--日志文件名以输出日期命名,可更改其他日期方式-->
      <datePattern value="yyyyMMdd-HH:mm:ss"/>
      <!--表明输出的日志信息是否一直在同一文件中-->
      <staticLogFileName value="false"></staticLogFileName>
      
      <layout type="log4net.Layout.PatternLayout">
        <!--每条日志末尾的文字说明-->
        <footer value="by D %newline"/>
        <!--输出格式-->
        <!--样例:2008-03-26 13:42:32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->
        <conversionPattern value="%newline记录时间:%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline"/>
      </layout>
      
    </appender>-->
    <!--定义输出到数据库中-->
    <appender name="AdoNetAppender_SqlServer" type="log4net.Appender.AdoNetAppender">
      <!--缓存个数,意思是累计到多少条数据,才将数据写入数据库,一般给0,如果不写,数据将不法写入数据库-->
      <bufferSize value="0"/>
      <!--引用数据库 sql2008版本的-->
      <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
      <!--连接数据库字符串-->
      <connectionString value="data source=.;initial catalog=test;integrated security=false;persist security info=True;User ID=sa;Password=123456;"/>
      <commandText value="INSERT INTO Sys_Log ([LogDate],[Thread],[Levels],[Logger],[Message]) VALUES (@log_date,@thread,@log_level,@logger,@message)"/>
      <!--定义参数-->
      <parameter>
        <parameterName value="@log_date"/>
        <dbType value="DateTime"/>
        <layout type="log4net.Layout.PatternLayout" value="%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}"/>
      </parameter>
      <parameter>
        <parameterName value="@thread"/>
        <dbType value="String"/>
        <size value="255"/>
        <layout type="log4net.Layout.PatternLayout" value="%thread"/>
      </parameter>
      <parameter>
        <parameterName value="@log_level"/>
        <dbType value="String"/>
        <size value="50"/>
        <layout type="log4net.Layout.PatternLayout" value="%level"/>
      </parameter>
      <parameter>
        <parameterName value="@logger"/>
        <dbType value="String"/>
        <size value="255"/>
        <layout type="log4net.Layout.PatternLayout" value="%logger"/>
      </parameter>
      <parameter>
        <parameterName value="@message"/>
        <dbType value="String"/>
        <size value="4000"/>
        <layout type="log4net.Layout.PatternLayout" value="%message"/>
      </parameter>
    </appender>
    <!--定义日志的输出媒介,下面定义日志以四种方式输出。
      也可以下面的按照一种类型或其他类型输出。-->
    
    <!--这里的ALL是代表全部属性-->
    <root>
      <level value="ALL"/>
      <!-- 数据库日志 -->
      <appender-ref ref="AdoNetAppender_SqlServer"/>
      <!-- 文件形式记录日志 -->
      <appender-ref ref="LogFileAppender"/>
    </root>
  </log4net>

在这个配置文件中,写了两个输出,一个是对数据库,一个是对文件的,都在最后的All里面


//2.添加下面这句
[assembly: log4net.Config.XmlConfigurator(Watch = true,ConfigFile="web.config")]
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        #region 3.写日志
        //创建日志记录组件实例
        //这里要注意,应为在配置文件中有没有写具体的文件属性
        ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
        //ILog log = log4net.LogManager.GetLogger(typeof(_Default)); 

        //记录严重错误
        log.Fatal("fatal", new Exception("发生了一个致命错误"));
        //记录错误日志
        log.Error("error", new Exception("发生了一个异常"));        
        //记录一般信息
        log.Info("info");
        //记录调试信息
        log.Debug("debug");
        //记录警告信息
        log.Warn("warn");        
        #endregion
    }
}


这样就很简单的完成了对数据库的操作

还有一点就是补充一下另外两个两个输出方式

  <!--定义输出到控制台命令行中-->
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>
    <!--定义输出到windows事件中-->
    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>
也是写在配置文件中,跟文件输出的样式相同,

最后附上我写的代码http://pan.baidu.com/s/1dFMIyOD



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值