Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/xljiulang/logging.debugger

Microsoft.Extensions.Logging统一日志的System.Diagnostics.Debugger日志提供者,可以使用DebugViewer工具监听日志内容
https://github.com/xljiulang/logging.debugger

Last synced: 20 days ago
JSON representation

Microsoft.Extensions.Logging统一日志的System.Diagnostics.Debugger日志提供者,可以使用DebugViewer工具监听日志内容

Awesome Lists containing this project

README

        

# Logging.Debugger
Microsoft.Extensions.Logging统一日志的System.Diagnostics.Debugger日志提供者,可以使用[DebugViewer](https://github.com/xljiulang/Microsoft.Extensions.Logging.Debugger/blob/master/DebugViewer.exe?raw=true)工具监听日志内容。

### 1 Nuget
PM> `install-package Logging.Debugger`

支持.net framework 4.5、netstandard2.0

### 2 如何使用
PM> `install-package Microsoft.Extensions.Logging`

PM> `install-package Logging.Debugger`

```c#
static void Main(string[] args)
{
var logging = new LoggerFactory().AddDebugger();
var logger = logging.CreateLogger(nameof(Demo));

logger.LogInformation("log info ...");
logger.LogError(0, new Exception("boom!"), "sorry!");

Console.ReadLine();
}
```

### 3 平台与环境
* 只支持windows平台,因底层是封装winapi OutputDebugString函数;
* 在IDE调试环境下不会输出到DebugViewer,直接运行DebugViewer才抓到日志内容;
* 只能输出4096个字的日志内容,超过会截断

### 4 使用场景
System.Diagnostics.Debugger在输出日志时,先判断系统如果有调试器在监听,才将日志内容写入指定的windows的内存映射,并通知调试器有新的数据更新。本项目里面的DebugViewer.exe是调试器,在开启之后System.Diagnostics.Debugger才真正的输出日志,所以Logging.Debugger非常适合用于作Debug内容高度密集输出,你的程序在运行时的性能不会受到任何影响,而且可以随时监听和查看实时日志。DebugViewer项目地址:https://github.com/xljiulang/DebugViewer