log4net使用指南(winform版,sqlserver记录)

本文档介绍了如何在WinForm应用程序中使用log4net进行日志记录,包括通过NuGet安装、配置log4net.config文件、设置不同级别的日志过滤以及在代码中调用的方法。此外,还提供了一个具体的WinForm应用示例,展示了如何将日志信息记录到文件和SQL Server,并给出了日志输出的各种格式,如txt、html。
摘要由CSDN通过智能技术生成

参照自:
1,apache官网 这个一定是你入门的最好教材 点击进入
2,C#使用log4net记录日志     https://www.cnblogs.com/kliine/p/10950859.html
3,非常完整的log4net详细说明     https://blog.csdn.net/binnygoal/article/details/79557746
4,C#一个完整的Log4net使用实例 https://blog.csdn.net/dnazhd/article/details/89555517

1,谈谈使用步骤和流程

log4net是.Net下一个非常优秀的开源日志记录组件。步骤如下:
1,visual studio中通过Nuget安装log4net。
2,CS程序,根目录的Program.cs的Main方法中添加log4net.Config.XmlConfigurator.Configure();
BS程序,根目录的Global.asax.cs(没有新建一个)中的Application_Start方法中添加:
log4net.Config.XmlConfigurator.Configure();
无论BS还是CS程序都可直接在项目的AssemblyInfo.cs文件里添加以下的语句:
[assembly: log4net.Config .XmlConfigurator()]
代码中我在AssemblyInfo.cs文件中添加如下:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
3,创建log4net.config文件,并配置文件属性》复制到输出目录》如果较新则复制
4,在程序中使用语法

log4net.ILog log = log4net.LogManager.GetLogger("testApp.Logging");//获取一个日志记录器

log.Info("hello,这是一条日志");

2,主要知识点

Filters

DenyAllFilter 阻止所有的日志事件被记录

LevelMatchFilter 只有指定等级的日志事件才被记录

LevelRangeFilter 日志等级在指定范围内的事件才被记录

LoggerMatchFilter 与Logger名称匹配,才记录

PropertyFilter 消息匹配指定的属性值时才被记录

StringMathFilter 消息匹配指定的字符串才被记录

日志级别
OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL

输出样式总结

%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息

%n(new line):换行

%d(datetime):输出当前语句运行的时刻

%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数

%t(thread id):当前语句所在的线程ID

%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等

%c(class):当前日志对象的名称

%L:输出语句所在的行号

%F:输出语句所在的文件名

%-数字:表示该项的最小长度,如果不够,则用空格填充

3,一个具体的winform例子

最好的干货就是最凝练的代码,如下,亲测可跑,.net4.5
form1窗体:

public partial class Form1 : Form   
    {
       private static readonly log4net.ILog  loginfoDb = LogFactory.GetLogger("loginfoDb");
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                string a = "FF";
                int b = Convert.ToInt32(a);
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(ex.Message.ToString(), ex);
                string tempmsg = ex.Message.ToString() + "/r/n" + ex.Source.ToString() + "/r/n" + ex.TargetSite.ToString() + "/r/n" + ex.StackTrace.ToString();
                if (loginfoDb.IsInfoEnabled)
                {
                    Task.Run(()=> { loginfoDb.Info(tempmsg, ex); });
                }
            }
        }
    }

LogHelper类


using log4net;
using log4net.Config;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace WindowsFormsApp1.Helper
{
    public class LogHelper
    {
        public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");//这里的 loginfo 和 log4net.config 里的名字要一样
        //public static readonly log4net.ILog loginfoDb = log4net.LogManager.GetLogger("loginfoDb");//这里的 loginfoDb 和 log4net.config 里的名字要一样

        public static readonly log4net.ILog logerror = log4net.LogManager
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值