C#输出日志文件——log4net组件

C#输出日志文件——log4net组件

前言

最近在写一个Winform项目,发现不知道怎么查看相关的输出信息来判断逻辑,经过一番搜索终于了解到这个一个非常好用的组件——log4net。

 

 

 

 


log4net简介

Log4net库是.Net下一个非常优秀的开源日志记录组件,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具。

它具有:支持多数框架、可输出日志到多种目标、层级日志体系、可使用XML配置、可动态配置、模块化和可扩展化设计、灵活、高性能等特征。

 


log4net使用

创建项目以及引入资源

我们先来创建项目,新建一个C#的Winform项目。

创建完成项目之后,我们右击项目,选择 管理NuGet程序包 ,在 浏览 中搜索 log4net,并安装:

新建配置文件

右击项目新建一个config类型文件,取名为log4net (log4net 的配置信息单独的写在一个config文件里比较好管理,与其他代码分离清楚)

即新建 Application Configuration  File,即应用程序配置文件。

然后,右击这个配置文件,选择属性,在“复制到输出目录”中,选择“如果较新则复制”。

 

更新配置信息

更新刚才的配置文件,更新内容大致如下:

 <configuration>
  <log4net>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <datePattern value="yyyyMM\\yyyyMMdd'_Demo.txt'" />
      <encoding value="utf-8" />
      <file value="..\\..\\log\\" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <staticLogFileName value="false" />
      <param name="MaxSizeRollBackups" value="100" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%newline %nDatetime:%utcdate %nHostName:%property{log4net:HostName} %nThreadID:[%thread] %nLogLevel:  %-5level %nClassName:%logger property: [%property{NDC}] - %nDescription:%message%newline %n" />
      </layout>
    </appender>
    <root>
      <level value="All" />
      <appender-ref ref="RollingLogFileAppender" />
    </root>
  </log4net>
</configuration>

 

引用配置文件

编写 App.config 文件引用 log4net.config 代码

 <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net configSource="log4net.config" />

以我的为例,添加完成最后是这样:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
    </startup>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net configSource="log4net.config" />
</configuration>

 

使用

在我们的需要用到log的地方这样写:

首先引入空间,然后写注解:

using log4net;
using log4net.Config;

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

然后在你的类中定义:

private static readonly ILog log = LogManager.GetLogger(typeof(Program));

接下来,在需要输入日志的地方用如下即可:

            log.Debug("this is Debug");
            log.DebugFormat("this is DebugFormat");
            log.ErrorFormat("this is ErrorFormat");
            log.Error("this is Error");

然后我们启动项目,可以在项目下找到log的目录,里面就有记录的日志文件。

 


使用实例

Winform

我们创建一个新的Winform项目,然后将上面的配置文件什么的写好了,然后,在UI中创建一个按钮,添加响应事件,那一页的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using log4net;
using log4net.Config;

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

namespace 学习日志组件log4net
{
    public partial class Form1 : Form
    {
        private static readonly ILog log = LogManager.GetLogger(typeof(Program));
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            log.Info("按下了按钮!");
        }
    }
}

OK,接下来我们来运行项目,然后点击按钮,然后打开对应的文件即会发现日志

测试结果

 


 

 

 

商业转载 请联系作者获得授权,非商业转载 请标明出处,谢谢

 

 

 

 

 

 

 

 

 

 

 

  • 13
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

轻舟在过

您的支持是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值