Log4net 简单实例源码及详细步骤

本文提供了一个简单的C# WinForm程序,介绍如何集成并配置log4net进行日志记录。首先从Apache官网下载log4net,然后在VS2013中创建新项目,将log4net.dll作为引用添加,并配置App.config文件。通过调整App.config,可以改变日志输出格式。此教程旨在作为学习参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Log4net 简单实例源码及详细步骤


       Log4net的好处不再多言,配置方法很多(确也是大同小异,详情可自行查找资料或参考文末的参考链接),本文仅以一个简单的WinForm程序为实例说明其中一种用法。


       前期准备:

       官网下载:Log4net Apache官网下载地址

       以下载log4net-1.2.15-bin-newkey.zip为例,解压后bin目录下有cli、mono、net、net-cp四个子目录(其中:net-cp指:.NET Framework 4 Client Profile),进入net目录选择相应版本(本例取4.5),文件夹中log4net.dll即为所需。


       详细步骤:

       1、VS2013新建项目--C# Windows窗体应用程序,解决方案名称为:LogDemo;


       2、添加引用:将准备好的log4net.dll作为引用添加进来;


       3、在App.config中配置log4net:

       配置前App.config文件为:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
</configuration>
配置后App.config文件为:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>

  <log4net>
    <appender name="FileAppender" type="log4net.Appender.FileAppender">
      <!-- 日志文件名 -->
      <file value="AppLog.log" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%newline记录日期: %date 进程ID: [%thread] 日志级别: %-5level- %newline详细信息: %newline%message%newline" />
      </layout>
    </appender>
    <root>
      <level value="ALL" />
      <appender-ref ref="FileAppender" />
    </root>
  </log4net>
</configuration>


       4、新建LogHelper.cs类:
using log4net;

[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace LogDemo
{
    class LogHelper
    {
        private static readonly ILog log = LogManager.GetLogger(typeof(LogHelper));

        // Info level
        public static void Info(object message)
        {
            log.Info(message);
        }

        public static void Info(object message, Exception exception)
        {
            log.Info(message, exception);
        }

        // Debug level
        public static void Debug(object message)
        {
            log.Debug(message);
        }

        public static void Debug(object message, Exception exception)
        {
            log.Debug(message, exception);
        }

        // Warn level
        public static void Warn(object message)
        {
            log.Warn(message);
        }

        public static void Warn(object message, Exception exception)
        {
            log.Warn(message, exception);
        }

        // Error level
        public static void Error(object message)
        {
            log.Error(message);
        }

        public static void Error(object message, Exception exception)
        {
            log.Error(message, exception);
        }

        // Fatal level
        public static void Fatal(object message)
        {
            log.Fatal(message);
        }

        public static void Fatal(object message, Exception exception)
        {
            log.Fatal(message, exception);
        }

        // 
        public bool IsInfoEnabled
        {
            get
            {
                return log.IsInfoEnabled;
            }
        }

        public bool IsDebugEnabled
        {
            get
            {
                return log.IsDebugEnabled;
            }
        }

        public bool IsWarnEnabled
        {
            get
            {
                return log.IsWarnEnabled;
            }
        }

        public bool IsErrorEnabled
        {
            get
            {
                return log.IsErrorEnabled;
            }
        }

        public bool IsFatalEnabled
        {
            get
            {
                return log.IsFatalEnabled;
            }
        }
    }
}

       5、在Form1.cs的构造函数中添加测试代码:

namespace LogDemo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            LogHelper.Info("Info 测试");
            LogHelper.Debug("Debug 测试");
            LogHelper.Warn("Warn 测试");
            LogHelper.Error("Error 测试");
            LogHelper.Fatal("Fatal 测试");
            InitializeComponent();
            
        }
    }
}

       6、运行测试,日志文件“AppLog.log”默认在..\bin\Debug\目录下(可自行修改),日志文件内容如下图所示:


       小结:

       可以对照日志文件调整App.config中输出格式。本文只是个简单示例,仅供记录下来学习参考。若想运行完整工程示例,可点此下载(免积分):C# WinForm Log4net 示例: LogDemo.rar



       参考资料:1- 一分钟学会 log4net(c#) 配置及使用; 2- Log4net入门使用;3- Log4Net使用指南;4- Log4Net使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值