Ric*_*tte 8 stackexchange.redis serilog
StackExchange.Redis 将日志消息写入 TextWriter。它不使用 ILogger 接口进行日志记录。
我想将写入 TextWriter 的消息转换为 Serilog 调试级别的消息。
想法?
类似于以下内容(仅经过冒烟测试,但似乎有效):
public class TextWriterLogger : TextWriter
{
private ILogger logger;
private StringBuilder builder = new StringBuilder();
private bool terminatorStarted = false;
public TextWriterLogger(ILoggerFactory log)
{
logger = log.CreateLogger("RedisTrace");
}
public override void Write(string value)
{
logger.LogDebug(value);
}
public override void Write(char value)
{
builder.Append(value);
if (value == NewLine[0])
if (NewLine.Length == 1)
Flush2Log();
else
terminatorStarted = true;
else if (terminatorStarted)
if (terminatorStarted = NewLine[1] == value)
Flush2Log();
}
private void Flush2Log()
{
if (builder.Length > NewLine.Length)
logger.LogDebug(builder.ToString());
builder.Clear();
terminatorStarted = false;
}
public override Encoding Encoding
{
get { return Encoding.Default; }
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1023 次 |
| 最近记录: |