使用log4net
注意
稍大点的应用推荐这种方式。可定义参数多。
安装
Nuget
安装log4net
项目根目录添加log4net.config
设置属性
下面两种任选一种即可。
下面两种方式主要是封装的要解决无法在日志中显示异常位置的问题。
默认(推荐)
log4net.config
1 |
|
其中
%class
显示包名和类名
%class{1}
只显示类名
工具类
1 | using System; |
调用
1 | ZLogHelper.Loginfo.Info("课堂启动"); |
如果在应用结束前要上传日志文件,我们就要停止日志,防止文件占用
1 | ZLogHelper.StopLog(); |
打印示例
日志时间:2023-11-06 15:21:41,108 [1]
日志级别:INFO
日志类:SchoolClient.MyApp:35
课堂启动
注意
这里之所以没有把打印日志封装是因为:打印的类和行号是被调用的类,如果封装后,显示的都会是封装的类,那么打印类名和行号就没有意义了。
简单封装(不推荐)
配置如下:
1 |
|
添加工具类
1 | using System; |
注意
在调用记录日志前,要调用
InitLog4Net
方法。因为封装了,所以自带的打印类和行数就不生效了,我们可以自己进行格式化拼接。
调用
1 | ZLogHelper.WriteInfoLog("课堂启动"); |
打印示例
这种方式获取到的文件的路径,暂时没找到获取包名+类名的方式。
日志时间:2023-11-06 14:59:36,168 [1]
日志级别:INFO
日志类:D:\Project\csharp\xh-schoolclient\MyApp.xaml.cs:35
课堂启动
自定义日志类
注意
小应用可以使用这种方式。
工具类
1 | using System; |
调用时
1 | //记录日志 |
异常测试
1 | LogHelper.LogWrite(new Exception("主页面启动")); |
全局异常捕获
这里的示例采用的第三方库的方式。
1 | /// <summary> |