30 lines
767 B
C#
30 lines
767 B
C#
using System;
|
|
using System.IO;
|
|
|
|
namespace Syntriax.Engine.Core.Debug;
|
|
|
|
public class FileLogger : LoggerBase
|
|
{
|
|
public readonly string FilePath;
|
|
|
|
protected override void Write(string message)
|
|
{
|
|
File.AppendAllTextAsync(FilePath, $"{message}{Environment.NewLine}");
|
|
}
|
|
|
|
public FileLogger(string filePath)
|
|
{
|
|
FilePath = filePath;
|
|
|
|
bool isRelativePath = Path.GetFullPath(filePath).CompareTo(filePath) != 0;
|
|
|
|
if (isRelativePath)
|
|
FilePath = Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, filePath));
|
|
|
|
if (Path.GetDirectoryName(FilePath) is string directoryPath)
|
|
Directory.CreateDirectory(directoryPath);
|
|
|
|
File.Open(FilePath, FileMode.Create).Close();
|
|
}
|
|
}
|