mirror of
https://github.com/logos-storage/logos-storage-nim-cs-dist-tests.git
synced 2026-01-04 22:43:07 +00:00
47 lines
1.1 KiB
C#
47 lines
1.1 KiB
C#
using Logging;
|
|
|
|
namespace KubernetesWorkflow
|
|
{
|
|
public interface ILogHandler
|
|
{
|
|
void Log(Stream log);
|
|
}
|
|
|
|
public abstract class LogHandler : ILogHandler
|
|
{
|
|
public void Log(Stream log)
|
|
{
|
|
using var reader = new StreamReader(log);
|
|
var line = reader.ReadLine();
|
|
while (line != null)
|
|
{
|
|
ProcessLine(line);
|
|
line = reader.ReadLine();
|
|
}
|
|
}
|
|
|
|
protected abstract void ProcessLine(string line);
|
|
}
|
|
|
|
public class WriteToFileLogHandler : LogHandler, ILogHandler
|
|
{
|
|
public WriteToFileLogHandler(ILog sourceLog, string description, string addFileName)
|
|
{
|
|
LogFile = sourceLog.CreateSubfile(addFileName);
|
|
|
|
var msg = $"{description} -->> {LogFile.Filename}";
|
|
sourceLog.Log(msg);
|
|
|
|
LogFile.Write(msg);
|
|
LogFile.WriteRaw(description);
|
|
}
|
|
|
|
public LogFile LogFile { get; }
|
|
|
|
protected override void ProcessLine(string line)
|
|
{
|
|
LogFile.WriteRaw(line);
|
|
}
|
|
}
|
|
}
|