mirror of
https://gitee.com/langsisi_admin/serein-flow
synced 2026-04-01 22:16:34 +08:00
GIT练习
This commit is contained in:
45
WorkBench/tool/LogTextWriter.cs
Normal file
45
WorkBench/tool/LogTextWriter.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
|
||||
namespace Serein.WorkBench.tool
|
||||
{
|
||||
/// <summary>
|
||||
/// 可以捕获类库输出的打印输出
|
||||
/// </summary>
|
||||
public class LogTextWriter(Action<string> logAction) : TextWriter
|
||||
{
|
||||
private readonly Action<string> logAction = logAction;
|
||||
private readonly StringWriter stringWriter = new();
|
||||
|
||||
public override Encoding Encoding => Encoding.UTF8;
|
||||
|
||||
public override void Write(char value)
|
||||
{
|
||||
stringWriter.Write(value);
|
||||
if (value == '\n')
|
||||
{
|
||||
logAction(stringWriter.ToString());
|
||||
stringWriter.GetStringBuilder().Clear();
|
||||
}
|
||||
}
|
||||
|
||||
public override void Write(string? value)
|
||||
{
|
||||
if(string.IsNullOrWhiteSpace(value)) { return; }
|
||||
stringWriter.Write(value);
|
||||
if (value.Contains('\n'))
|
||||
{
|
||||
logAction(stringWriter.ToString());
|
||||
stringWriter.GetStringBuilder().Clear();
|
||||
}
|
||||
}
|
||||
|
||||
public override void WriteLine(string? value)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(value)) { return; }
|
||||
stringWriter.WriteLine(value);
|
||||
logAction(stringWriter.ToString());
|
||||
stringWriter.GetStringBuilder().Clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user