首页 > Windows开发 > 详细

在项目中使用log4net [附C#源码]

时间:2015-12-23 12:28:59      阅读:255      评论:0      收藏:0      [点我收藏+]

在项目开发中,记录日志是非常重要的。你永远无法保证你的代码不出错。所以在一些关键的地方加上日志,是非常有必要的。

而今天要说的log4net它就是干这个事的。

log4net是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具。

下面我说下5种方式记录日志

1.记录到文本文件

2.记录到Xml文件

3.记录到SqlServer数据库

4.记录到Access数据库

5.记录到SQLite数据库

这只是目前我在做项目的时候基本上用到的这些,当然你也可以记录到Oracle、Mysql数据库也行,通过SMTP协议以邮件形式发送或UDP协议发送等等。还有很多方式我就不多说了。

 

下面开始上代码

 

文本文件记录

 

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  </configSections>
  <log4net>

    <root>
      <level value="All" />
      <appender-ref ref="TextRollingFileAppender"/>
    </root>

    <appender name="TextRollingFileAppender" type="log4net.Appender.RollingFileAppender,log4net" >
      <bufferSize value="10" />
      <param name="File" value="C:\\SystemLog\\" />
      <param name="AppendToFile" value="true" />
      <param name="RollingStyle" value="Date" />
      <param name="DatePattern" value="yyyyMMdd‘_log4net.txt‘" />
      <param name="StaticLogFileName" value="false" />
      <layout type="log4net.Layout.PatternLayout,log4net">
        <conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别:  %-5level %n日志器:%logger %n错误描述:%message %n应用程序域:%domain %n计算机名:%username%newline"/>
      </layout>
    </appender>
  </log4net>
</configuration>

 

 

 

XML文件记录

 

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  </configSections>
  <log4net>

    <root>
      <level value="All" />
      <appender-ref ref="XmlRollingFileAppender"/>
    </root>

    <appender name="XmlRollingFileAppender" type="log4net.Appender.RollingFileAppender,log4net" >
      <bufferSize value="10" />
      <param name="File" value="C:\\SystemLog\\" />
      <param name="AppendToFile" value="true" />
      <param name="RollingStyle" value="Date" />
      <param name="DatePattern" value="yyyyMMdd‘_log4net.xml‘" />
      <param name="StaticLogFileName" value="false" />
      <layout type="log4net.Layout.XmlLayout,log4net">
        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
      </layout>
    </appender>
  </log4net>
</configuration>

 

SQLServer数据库记录

 

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
  </configSections>
  <log4net>

    <root>
      <level value="All" />
      <appender-ref ref="AdoNetAppender"/>
    </root>


    <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=20141202YZX\MSSQL2012;database=LogDB;uid=sa;pwd=1;" />

      <commandText value="INSERT INTO t_Log(FAppName,FTimestamp,FThread,FLevel,FLogger,FMessage,FDomain,FUserName) VALUES (‘ConsoleAppTest‘,@FTimestamp,@FThread,@FLevel,@FLogger,@FMessage,@FDomain,@FUserName)
" />
      <parameter>
        <parameterName value="@FTimestamp" />
        <dbType value="DateTime" />
        <layout type="log4net.Layout.RawTimeStampLayout" />
      </parameter>

      <parameter>
        <parameterName value="@FThread" />
        <dbType value="String" />
        <size value="16" />
        <layout type="log4net.Layout.PatternLayout" value="%thread" />
      </parameter>

      <parameter>
        <parameterName value="@FLevel" />
        <dbType value="String" />
        <size value="32" />
        <layout type="log4net.Layout.PatternLayout" value="%level" />
      </parameter>

      <parameter>
        <parameterName value="@FLogger" />
        <dbType value="String" />
        <size value="64" />
        <layout type="log4net.Layout.PatternLayout" value="%logger" />
      </parameter>

      <parameter>
        <parameterName value="@FMessage" />
        <dbType value="String" />
        <size value="-1" />
        <layout type="log4net.Layout.PatternLayout" value="%message" />
      </parameter>

      <parameter>
        <parameterName value="@FDomain" />
        <dbType value="String" />
        <size value="128" />
        <layout type="log4net.Layout.PatternLayout" value="%domain" />
      </parameter>

      <parameter>
        <parameterName value="@FUserName" />
        <dbType value="String" />
        <size value="128" />
        <layout type="log4net.Layout.PatternLayout" value="%username" />
      </parameter>

    </appender>
  </log4net>
</configuration>

 

 

 

Access数据库记录

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
  </configSections>
  <log4net>

    <root>
      <level value="All" />
      <appender-ref ref="AdoNetAppender"/>
    </root>

    <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
      <bufferSize value="10" />
      <connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\SystemLog\log4net.mdb" />
      <commandText value="INSERT INTO t_Log(FAppName,FTimestamp,FThread,FLevel,FLogger,FMessage,FDomain,FUserName) VALUES (‘ConsoleAppTest‘,@FTimestamp,@FThread,@FLevel,@FLogger,@FMessage,@FDomain,@FUserName)
" />
      <parameter>
        <parameterName value="@FTimestamp" />
        <dbType value="DateTime" />
        <layout type="log4net.Layout.RawTimeStampLayout" />
      </parameter>

      <parameter>
        <parameterName value="@FThread" />
        <dbType value="String" />
        <size value="16" />
        <layout type="log4net.Layout.PatternLayout" value="%thread" />
      </parameter>

      <parameter>
        <parameterName value="@FLevel" />
        <dbType value="String" />
        <size value="32" />
        <layout type="log4net.Layout.PatternLayout" value="%level" />
      </parameter>

      <parameter>
        <parameterName value="@FLogger" />
        <dbType value="String" />
        <size value="64" />
        <layout type="log4net.Layout.PatternLayout" value="%logger" />
      </parameter>

      <parameter>
        <parameterName value="@FMessage" />
        <dbType value="String" />
        <size value="-1" />
        <layout type="log4net.Layout.PatternLayout" value="%message" />
      </parameter>

      <parameter>
        <parameterName value="@FDomain" />
        <dbType value="String" />
        <size value="128" />
        <layout type="log4net.Layout.PatternLayout" value="%domain" />
      </parameter>

      <parameter>
        <parameterName value="@FUserName" />
        <dbType value="String" />
        <size value="128" />
        <layout type="log4net.Layout.PatternLayout" value="%username" />
      </parameter>
    </appender>


  </log4net>
</configuration>

 

 

SQLite数据库记录

 

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
  </configSections>
  <log4net>

    <root>
      <level value="All" />
      <appender-ref ref="AdoNetAppender"/>
    </root>

    <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
      <bufferSize value="10" />
      <connectionType value="System.Data.SQLite.SQLiteConnection, System.Data.SQLite, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
      <connectionString value="Data Source=C:\\SystemLog\\log4net.sqlite;Version=3;" />
      <commandText value="INSERT INTO t_Log(FAppName,FTimestamp,FThread,FLevel,FLogger,FMessage,FDomain,FUserName) VALUES (‘ConsoleAppTest‘,@FTimestamp,@FThread,@FLevel,@FLogger,@FMessage,@FDomain,@FUserName)
" />
      <parameter>
        <parameterName value="@FTimestamp" />
        <dbType value="DateTime" />
        <layout type="log4net.Layout.RawTimeStampLayout" />
      </parameter>

      <parameter>
        <parameterName value="@FThread" />
        <dbType value="String" />
        <size value="16" />
        <layout type="log4net.Layout.PatternLayout" value="%thread" />
      </parameter>

      <parameter>
        <parameterName value="@FLevel" />
        <dbType value="String" />
        <size value="32" />
        <layout type="log4net.Layout.PatternLayout" value="%level" />
      </parameter>

      <parameter>
        <parameterName value="@FLogger" />
        <dbType value="String" />
        <size value="64" />
        <layout type="log4net.Layout.PatternLayout" value="%logger" />
      </parameter>

      <parameter>
        <parameterName value="@FMessage" />
        <dbType value="String" />
        <size value="-1" />
        <layout type="log4net.Layout.PatternLayout" value="%message" />
      </parameter>

      <parameter>
        <parameterName value="@FDomain" />
        <dbType value="String" />
        <size value="128" />
        <layout type="log4net.Layout.PatternLayout" value="%domain" />
      </parameter>

      <parameter>
        <parameterName value="@FUserName" />
        <dbType value="String" />
        <size value="128" />
        <layout type="log4net.Layout.PatternLayout" value="%username" />
      </parameter>
    </appender>


  </log4net>
</configuration>

 

以上是配置文件内。

具体源代码我已写好。

下载地址:http://pan.baidu.com/s/1hqM8nRI

 

在项目中使用log4net [附C#源码]

原文:http://www.cnblogs.com/xmyzx/p/5054828.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!