超轻量级的c#版基于文件的日志记录工具,可定制输出格式,可指定日志文件

这是我自己个人编写的日志记录,主要使用在只需要记录日志,偶尔到文件中查看一下日志记录的情况。我自己写的一些服务之类的是使用了这个的,代码很少,使用很简单。

第一步 搜索和安装我的Nuget包

搜索和安装zmjtool这个包,我写的,如下图:

第二步 引入namespace和创建logger对象

1 /**引入命名空间*/
2 using ZmjTool;
3 
4 /**创建对象和使用log功能*/
5 var log = DefaultFileLogger.Create("你的日志文件路径");
6 log.LogMessage("一般信息");
7 log.LogWarning("警告信息");
8 log.LogError(new Exception("错误信息"));

第三步 读取旧的日志(非必须)

/**读取日志内容*/
1
var log = DefaultFileLogger.Create("要读取的日志文件"); 2 log.ReloadLogs(); 3 foreach(var l in log.LogLines){ 4 var tm = l.HTime;//日志行的记录时间 5 var lv = l.CLevel;//日志的记录级别 6 var cnt = l.Content;//日志的文字内容 7 }

第四步 进阶用法(非必须)

复制代码
 1 /**自定义log文件的等级*/
 2 public enum MyLevel : int
 3 {
 4     level1, level2, level3, level4, level5
 5 }
 6 
 7 /**需要一个反序列化时用到的正则表达式*/
 8 public static Regex DefFileLogRegex = new Regex(@"^(.*?): \[(.*?)\] : (.*?)$", RegexOptions.IgnoreCase | RegexOptions.Compiled);
 9 
10 /**创建log对象,指定文件名,指定三种等级,指定最终输出log行的格式方法,以及日志行的反序列化方法*/
11 var log = new FileLogger<MyLevel>("你的文件路径", MyLevel.level1, MyLevel.level3, MyLevel.level5,l => $"{l.HTime:G}: [{l.CLevel}] : {l.Content}",s =>
12     {
13         var mh = DefFileLogRegex.Match(s);
14         if (!mh.Success) return null;
15         return new FileLogger<FileLoggerEventLevel>.LogLine() { HTime = DateTime.Parse(mh.Groups[1].Value), CLevel = (FileLoggerEventLevel)Enum.Parse(typeof(FileLoggerEventLevel), mh.Groups[2].Value), Content = mh.Groups[3].Value };
16     });
17 log.Log(MyLevel.level2, "自定义级别信息");
18 log.LogMessage("一般信息");
19 log.LogWarning("警告信息");
20 log.LogError(new Exception("错误信息"));
复制代码

 

posted @   宅猫君  阅读(341)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2022-03-15 sql server数据库如何存储数组,int[]float[]double[]数组存储到数据库方法
点击右上角即可分享
微信分享提示