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;
        }
    }
}

运行效果:

相关推荐
郑州光合科技余经理3 小时前
同城系统海外版:一站式多语种O2O系统源码
java·开发语言·git·mysql·uni-app·go·phpstorm
一只乔哇噻3 小时前
java后端工程师+AI大模型开发进修ing(研一版‖day60)
java·开发语言·人工智能·学习·语言模型
LNN20223 小时前
Linuxfb+Qt 输入设备踩坑记:解决 “节点存在却无法读取“ 问题
开发语言·qt
foxsen_xia4 小时前
go(基础06)——结构体取代类
开发语言·算法·golang
巨人张4 小时前
C++火柴人跑酷
开发语言·c++
ID_180079054734 小时前
基于 Python 的 Cdiscount 商品详情 API 调用与 JSON 核心字段解析(含多规格 SKU 提取)
开发语言·python·json
悟能不能悟4 小时前
Caused by: java.sql.SQLException: ORA-28000: the account is locked怎么处理
java·开发语言
亦是远方5 小时前
南京邮电大学使用计算机求解问题实验一(C语言简单编程练习)
c语言·开发语言·实验报告·南京邮电大学
我是哈哈hh5 小时前
【Python数据分析】Numpy总结
开发语言·python·数据挖掘·数据分析·numpy·python数据分析
Michelle80235 小时前
24大数据 14-2 函数练习
开发语言·python