wpf 使用log4net记录日志

本文详细介绍了如何在WPF应用中配置和使用log4net进行日志记录,包括安装、配置、编写日志代码及日志级别设置,帮助读者掌握log4net的基本操作。

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

现在项目涉及的是cs客户端,在项目中使用log4net记录本地日志和异常信息,这里项目做完了,想着自己做一个demo,测试记录一下log4Net的配置使用。

第一步、新建一个wpf应用程序,项目右键 -----》点击NuGet程序包 -----》搜索lognet -------》点击安装

在这里插入图片描述
第二步:在app.config中添加节点 (当然,如果是Web项目就是 web.config)
在这里插入图片描述

配置文件代码如下:

复制代码




复制代码 把配置加到app.config中,如图所示

在这里插入图片描述

第三步:

在项目中找到Properties文件夹中找到AssemblyInfo.cs 在代码追后 添加 [assembly: log4net.Config.XmlConfigurator(Watch = true)]

在这里插入图片描述

在这里插入图片描述

第四步:添加操作log4net的后台代码

xaml文件创建按钮


xaml.cs 添加执行操作代码

复制代码
private void LogBtn_Click(object sender, RoutedEventArgs e)
{
string strLog = String.Format("[Thread ID:{0}]{1}", AppDomain.GetCurrentThreadId(), “Log4net写入日志配置处理”);
WriteLog(strLog);
}

    private void WriteLog(string exp = null, string loggerName = "InfoLogger")
    {
        //新建的一个静态类
        LogObject.Log(loggerName).Info(exp);
        LogObject.Log(loggerName).Error(exp);
    }

复制代码
复制代码
public static class LogObject
{

    public static ILog Log(string LoggerName)
    {

//log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
  return LogManager.GetLogger(LoggerName); } }
复制代码

第五步:

找到文件路径D://logfile.txt 查看日志!

在这里插入图片描述
在这里插入图片描述

静态类中获取日志对象的另一种写法:这个是程序自动获取当前程序对象 (上面的我是通过WriteLog方法传入的)

ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
return log;
日志输出:在这里插入图片描述

如果要在程序刚运行和退出的时候写入日志,在App.xaml.cs中加入:

复制代码
public static readonly ILog Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
Log.Info(“Startup===================>>>”);
}
protected override void OnExit(ExitEventArgs e)
{
Log.Info("<<<======================End");
base.OnExit(e);
}
复制代码

先再运行编译后的exe文件
然后退出程序,看结果

我们可以看到程序在进入和退出的时候也写入了日志。

在这里插入图片描述
在这里插入图片描述

扩展的知识点:

日志记录器(Logger)的级别顺序:
    分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级 从高到低分别是 ERROR、WARN、INFO、DEBUG。
    通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别, 则应用程序中所有DEBUG级别的日志信息将不被打印出来。(比定义低的级别不会被打印出来)

优先级高的将被打印出来。项目上生产环境时候建议把debug的日志级别重新调为warn或者更高,避免产生大量日志。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值