log4net


前言

记录学习成果,以便温故而知新

1.安装包

NuGet安装log4net

2.配置文件

log4net.config文件内容:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
  </configSections>
  <appSettings>
  </appSettings>
  <log4net>
    <!--定义输出到文件中-->
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="log/logfile.txt" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <datePattern value="yyyyMMdd-HHmm'.log'" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="1MB" />
      <layout type="log4net.Layout.PatternLayout">
        <!--
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
        -->
        <header value="by Antonio&#13;&#10;" />
        <conversionPattern value="%d %p %F(%L)-%c.%M>%message%newline" />
        <footer value="by Antonio&#13;&#10;" />
      </layout>
    </appender>
    <!--定义输出到控制台命令行中-->
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <!--
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
        --> 
        <conversionPattern value="%d %p %F(%L)-%c.%M>%message%newline" />
      </layout>
    </appender>
    <!--定义输出到数据库表中-->
    <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
      <bufferSize value="1" />
      <connectionType value="MySql.Data.MySqlClient.MySqlConnection, MySql.Data" />
      <connectionString value="server=localhost;database=test;Uid=root;Pwd=root;" />
      <commandText value="INSERT INTO t_log (log_date, thread, log_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>
    
    <!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。-->
    <root>
      <!--文件形式记录日志-->
      <appender-ref ref="RollingLogFileAppender" />
      <!--控制台控制显示日志-->
      <appender-ref ref="ConsoleAppender" />
      <!--数据库记录日志-->
      <appender-ref ref="AdoNetAppender" />
    </root>

  </log4net>
</configuration>

复制到项目目录下,设置“文件属性”=>“复制到输出目录”=>“如果较新则复制”或“始终复制”,反正要保证编译生成目录中有这个文件。

3.设置AssemblyInfo.cs

项目目录=>Properties=>AssemblyInfo.cs中添加

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

4.代码调用

///字段
private static readonly ILog _log = LogManager.GetLogger(typeof(Form1));

///方法中调用
_log.Debug("Debug");
_log.Fatal("Fatal");
_log.Error("Error");
_log.Warn("Warn");
_log.Info("Info");

5.参考文档

Config Examples

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值