自定义简单的一个日志组件。可以存储本地文件,也可以存储到数据库(目前仅支持 mysql 和 sqlServer 数据库)。后期扩展和ELK结合。具体源代码在github可以查看。
1. 简介
组件可以生成对应日志文件( bin 目录下),可用于winform、webapi项目。如果存储在本地,以日志级别 Info、Debug、Error生成文件夹,内部以 yyyy-MM-dd 格式生成文件夹。日志文件以数字标识,如果单个日志文件大小超过5M则另生成日志文件。
2. 组件使用
可以使用依赖注入,也可以在配置Config后直接使用
依赖注入1 2 3 4
| builder.Services.AddOdinSingletonOdinLogs(opt=> opt.Config=new LogConfig { LogSaveType=new EnumLogSaveType[]{EnumLogSaveType.All}, ConnectionString = "server=xxxx;Database=xxxx;Uid=xxx;Pwd=xxx;"});
|
直接配置1 2 3
| OdinLog.Core.OdinLogs = new OdinLogs(new LogConfig { LogSaveType=new EnumLogSaveType[]{EnumLogSaveType.All}, ConnectionString = "server=xxxx;Database=xxxx;Uid=xxx;Pwd=xxx;"});)
|
调用1 2 3 4 5 6
| OdinLogs.Info(new LogInfo(){LogContent = "log info test",LogMark="log mark", }); OdinLogs.Error( new ExceptionLog(){ LogContent = "log exception test", LogMark="log mark", LogException = new Exception("custom exceptioni")});
|
3. 存储表结构
https://github.com/odinsam/OdinLog/tree/master/OdinLog/doc/DDL/scripts
4. 文件夹结构、文件内容格式如下:
1 2 3 4 5 6 7 8 9 10 11
| -- logs --Info -- 2022-06-01 0.txt 1.txt --Debug -- 2022-06-01 0.txt --Error -- 2022-06-01 0.txt
|
Info、Debug 文件内容格式如下:
1 2 3 4 5 6
| 【 LogId 】: 766c769d349d494daf82fca503666d5d 【 Log Level 】: Info 【 LogTime 】: 2022-07-03 17:59:44 【 LogContent 】: log info test ****************************************************************************************************
|
Error 文件内容格式如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| 【 LogId 】: 57c2978db92a44959e613f7a1e733d8b 【 Log Level 】: Error 【 LogTime 】: 2022-07-03 18:10:51 【 Exception Message 】: custom exceptioni 【 Exception Info 】: { "ClassName": "System.Exception", "Message": "custom exceptioni", "Data": null, "InnerException": null, "HelpURL": null, "StackTraceString": null, "RemoteStackTraceString": null, "RemoteStackIndex": 0, "ExceptionMethod": null, "HResult": -2146233088, "Source": null, "WatsonBuckets": null } ****************************************************************************************************
|
具体的代码在 GitHub