c#使用log4Net配置日志文件

1.# 写一个通用类 LogHelper

cs 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using log4net;

namespace WindowsFormsApplication22
{
    public class LogHelper
    {
        static ILog mylog = LogManager.GetLogger(typeof(LogManager));
        //创建列表,存储日志信息
        public static List<Record> fatal_list = new List<Record>();
        public static List<Record> error_list = new List<Record>();
        public static List<Record> info_list = new List<Record>();
        public static List<Record> debug_list = new List<Record>();
        public static List<Record> warning_list = new List<Record>();

        //报警等级分5 个
        public static void WriteFitle(object obj)
        {
            mylog.Fatal(obj);
            fatal_list.Add(new Record() { Id=fatal_list.Count+1,Name=obj.ToString(),datatime=DateTime.Now});
        }

        public static void WriteError(object obj)
        {
            mylog.Error(obj);
            error_list.Add(new Record() { Id = error_list.Count, Name = obj.ToString(), datatime = DateTime.Now });

        }

        public static void WriteInfo(object obj)
        {
            mylog.Info(obj);
            info_list.Add(new Record() { Id = info_list.Count, Name = obj.ToString(), datatime = DateTime.Now });
        }

        public static void WriteDebug(object obj)
        {
            mylog.Debug(obj);
            debug_list.Add(new Record() { Id=debug_list.Count,Name=obj.ToString(),datatime=DateTime.Now});
        }

        public static void WriteWarning(object obj)
        {
            mylog.Warn(obj);
            warning_list.Add(new Record() { Id = warning_list.Count, Name = obj.ToString(), datatime = DateTime.Now });
        }


    }

    public class Record
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public DateTime datatime { get; set; }
    }
}

2.配置文件信息 App.config

XML 复制代码
<?xml version="1.0" encoding="utf-8" ?>
<configuration>

  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net>
    <root>
      <level value="DEBUG" />
      <appender-ref ref="RollingFileAppender" />
    </root>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file type="log4net.Util.PatternString"  value="Logs\%date{yyyy--MM--dd}.log"/>
      <appendToFile value="true" />
      <maximumFileSize value="5KB"></maximumFileSize>
      <maxSizeRollBackups values="5"></maxSizeRollBackups>
   
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="日志时间:  %date    线程:[%thread]     日志级别:%-5level      记录信息: %message%newline" />
      </layout>
    </appender>
  </log4net>


  <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
    </startup>
</configuration>

3界面测试 ,首先加载界面配置文件:

cs 复制代码
  log4net.Config.XmlConfigurator.Configure(); //加载配置文件
cs 复制代码
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;

namespace WindowsFormsApplication22
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            log4net.Config.XmlConfigurator.Configure(); //加载配置文件
            LogHelper.WriteFitle("致命错误1");
            LogHelper.WriteFitle("致命错误2");
            LogHelper.WriteFitle("致命错误3");
            LogHelper.WriteFitle("致命错误4");
            LogHelper.WriteFitle("致命错误5");

            LogHelper.WriteInfo("普通一条信息1");
            LogHelper.WriteInfo("普通一条信息2");
            LogHelper.WriteInfo("普通一条信息3");

            LogHelper.WriteError("错误信息1");
            LogHelper.WriteError("错误信息2");
            LogHelper.WriteError("错误信息3");
            LogHelper.WriteError("错误信息3");

            LogHelper.WriteDebug("Debug 输出1");
            LogHelper.WriteDebug("Debug 输出2");
            LogHelper.WriteDebug("Debug 输出3");

            LogHelper.WriteWarning("提示信息1");
            LogHelper.WriteWarning("提示信息2");
            LogHelper.WriteWarning("提示信息3");
            LogHelper.WriteWarning("提示信息4");


        }

        private void buttonDebug_Click(object sender, EventArgs e)
        {
            this.dataGridView1.DataSource = LogHelper.debug_list;
        }

        private void buttonWarning_Click(object sender, EventArgs e)
        {
            this.dataGridView1.DataSource = LogHelper.warning_list;
        }

        private void buttonInfo_Click(object sender, EventArgs e)
        {
            this.dataGridView1.DataSource = LogHelper.info_list;
        }

        private void buttonFatals_Click(object sender, EventArgs e)
        {
            this.dataGridView1.DataSource = LogHelper.fatal_list;
        }
    }
}

运行效果:

相关推荐
人工智能AI技术3 小时前
315曝光AI投毒!用C#构建GEO污染检测与数据安全防护方案
人工智能·c#
myloveasuka3 小时前
Java与C++多态访问成员变量/方法 对比
java·开发语言·c++
2301_821700534 小时前
C++编译期多态实现
开发语言·c++·算法
奥地利落榜美术生灬4 小时前
c++ 锁相关(mutex 等)
开发语言·c++
xixihaha13244 小时前
C++与FPGA协同设计
开发语言·c++·算法
重庆小透明4 小时前
【java基础篇】详解BigDecimal
java·开发语言
ID_180079054734 小时前
模拟1688商品详情的Python API实现,返回符合风格的JSON数据
开发语言·python·json
小小怪7504 小时前
C++中的函数式编程
开发语言·c++·算法
金山几座4 小时前
C#学习记录-事件
开发语言·学习·c#
小杍随笔5 小时前
【Rust 语言编程知识与应用:基础数据类型详解】
开发语言·后端·rust