WinForm和WPF使用log4net
一、从Nuget下载lognet.dll
找到log4net之后,单击log4net,右侧会出现你的项目,勾选要安装的项目,然后点击“安装”。
二、打开app.config,进行如下设置
<?xml version="1.0" encoding="utf-8"?> <configuration><!--<startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7"/></startup>--><configSections><section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /></configSections><log4net><!--定义输出到文件中--><appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"><!--定义文件存放位置--><file value="Log\\Error\\"/><appendToFile value="true"/><rollingStyle value="Date"/><datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.txt'"/><staticLogFileName value="false"/><param name="MaxSizeRollBackups" value="100"/><layout type="log4net.Layout.PatternLayout"><!--每条日志末尾的文字说明--><!--输出格式--><!--样例:2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info--><conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别: %-5level %n出错类:%logger property: [%property{NDC}] - %n错误描述:%message%newline %n"/></layout></appender><root><level value="ERROR"/><!--文件形式记录日志--><appender-ref ref="RollingLogFileAppender"/></root></log4net> </configuration>
以上设置中
<file value="Log\\Error\\"/>
<datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.txt'"/>
代表生成路径及格式为:Log\\Error\\yyyy\\yyyyMM\\yyyyMMdd.txt如有需要,可自行修改。 三、WPF:在项目中找到Properties文件夹中找到AssemblyInfo.cs ,设置log4net Winform:在项目中找到Program.cs,在Main函数中设置log4netWPF:
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
Winform:
log4net.Config.XmlConfigurator.Configure();
以上是Winform程序和WPF程序使用log4net的唯一区别点。
四、建立调用对象。建log类。
public static class LogTools{/// <summary>/// 用来记录error和warn/// </summary>public static log4net.ILog ErrorWarnLog = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);}
五、程序中应用案例
有个地方要注意,调用方式是LogTools.ErrorWarnLog.Error(e),不是LogTools.ErrorWarnLog.Error(e.Message),一开始我是错误的写法,记录的Error信息异常,导致我找了半天,在此提醒下大家。
/// <summary>/// 线程工作步骤/// </summary>private void Working(){try{while (true){//线程步骤,略 }}catch (Exception e){LogTools.ErrorWarnLog.Error(e);}}
六、log信息
完~
WinForm和WPF使用log4net相关推荐
- 逆天通用水印支持Winform,WPF,Web,WP,Win10。支持位置选择(9个位置 ==》[X])...
常用技能:http://www.cnblogs.com/dunitian/p/4822808.html#skill 逆天博客:http://dnt.dkil.net 逆天通用水印扩展篇~新增剪贴板系列 ...
- Winform、WPF、Silverlight、MFC区别与联系
WinForm 在Windows中,诸如窗体绘制等功能由GDI(图形设备接口)实现,放在操作系统内核中.Windows Forms在底层使用的是GDI+.GDI+是GDI的"面向对象包装&q ...
- Windows程序设计:MFC 、Winform 和 WPF 比较
MFC生成本机代码,自然是很快,可是消息循环减缓了界面显示速度. WinForm封装了win32的api,多次进行P/invoke操作(大部分使用p/invoke操作封装),速度慢. WPF是一种新的 ...
- winform 与WPF
winform 与WPF 在多线程上的改进性能没大区别,WPF 是富客户端,winform是常见的客户端,就是说wpf实现一些绚丽界面比winform更容易,这就是他们的区别,当然wpf是微软取代wi ...
- 浅析.Net 在 winform及wpf中涉及界面交互的多线程类的封装
我们在开发客户端程序时,经常要用到多线程 而我们知道 , .Net 中从线程安全的考虑,对控件改变的调用要通过Invoke, beginvoke 来进行,这就涉及怎么进行工作线程与界面的互操作. 本文 ...
- winform,wpf全屏 还显示任务栏的解决方法
winform,wpf全屏 还显示任务栏的解决方法 参考文章: (1)winform,wpf全屏 还显示任务栏的解决方法 (2)https://www.cnblogs.com/Viki/archive ...
- 基础tips:.NET和ASP.NET还有ASP到底是什么?客户端WinForm和WPF的区别?前端三大框架,webpack和vite的比较,android三大框架.
1..NET和ASP.NET分别是什么? .NET是微软的一个开发平台,其主要核心就是.NET Framwork,这个平台的一大特点就是跨语言性,不管是什么语言,c.c++.c#.F#.J#.vb等语 ...
- 2021-12-12 WPF面试题 相对于Winform,WPF有什么优势?
相对于Winform,WPF有什么优势? 1 - 绑定(更简约的编码) 2 - 灵活的外观和感受(资源和样式) 3 - 声明式编程 (XAML) 4 - 表现层混合动画(动画开发简单) 5 - 快速加 ...
- A9G GPS定位系统介绍(物联网、.NET Core web、Winform、Wpf、STM32)
内容介绍 GPS定位系统主要实现的功能是基于GPS对远程物体进行无线追踪,GPS模块采用安信可的A9G.该系列主要涉及到的知识点包括: 1.基于asp.net core web 3.1\5.0\6.0 ...
最新文章
- Typescript 精彩履历
- php 判断类存在,PHP怎么判断类是否存在
- 【CodeForces - 1066A~E】水题,模拟(有技巧),思维,题意难懂的模拟,二进制问题(有技巧)
- Conda 环境常用碎笔记
- android 下载网络图片并缓存
- android mac地址过滤,android手机怎么更改mac地址绕过mac过滤
- css3技巧——实现一个正方体
- c语言辗转求最小公倍数,c语言:辗转相除法求最大公约数、最小公倍数
- 【M365运维】匹配用户UPN和Email地址
- SqlServer 备份还原
- Android studio 手机扫描二维码功能
- python加减乘除运算代码_四则运算python版
- ffmpeg实例,fade淡入淡出效果
- 增量式编码器有哪些分类?增量式编码器是如何工作的?
- 如何用ps把照片变成白底
- 音视频技术开发周刊 | 263
- cpu导热膏安装_我应该在CPU上涂抹多少导热膏?
- CNN卷积神经网络结构遐思
- 时间序列分析——基于R语言案例数据课后数据
- 写给想成为产品经理的学生们