46 lines
1.3 KiB
C#
46 lines
1.3 KiB
C#
using SzCore;
|
|
using SzCore.Defaults;
|
|
|
|
namespace SzCli;
|
|
|
|
public class Logger : ISzLogger
|
|
{
|
|
private DefaultLocalFileManager _fileManager;
|
|
public bool LogToFile { get; set; } = true;
|
|
public string LogFilePath { get; set; }
|
|
public int LogFileMaxLines { get; set; } = 100;
|
|
|
|
public Logger(DefaultLocalFileManager fm)
|
|
{
|
|
_fileManager = fm;
|
|
LogFilePath = Path.Combine(_fileManager.DataPath, "log.txt");
|
|
AppDomain.CurrentDomain.FirstChanceException += (sender, eventArgs) =>
|
|
{
|
|
LogError($"[EXCEPTION] {eventArgs.Exception}");
|
|
};
|
|
}
|
|
|
|
public void Log(string text)
|
|
{
|
|
Console.WriteLine($"{DateTime.UtcNow} : [SZ LOG] {text}");
|
|
if (LogToFile) AppendLogFile($"{DateTime.UtcNow} : [SZ LOG] {text}");
|
|
}
|
|
|
|
public void LogError(string text)
|
|
{
|
|
Console.WriteLine($"{DateTime.UtcNow} : [SZ ERR] {text}");
|
|
if (LogToFile) AppendLogFile($"{DateTime.UtcNow} : [SZ ERR] {text}");
|
|
}
|
|
|
|
public void LogWarning(string text)
|
|
{
|
|
Console.WriteLine($"{DateTime.UtcNow} : [SZ WARN] {text}");
|
|
if (LogToFile) AppendLogFile($"{DateTime.UtcNow} : [SZ WARN] {text}");
|
|
}
|
|
|
|
private void AppendLogFile(string text)
|
|
{
|
|
// TODO: Make sure log file adheres to LogFileMaxLines
|
|
File.AppendAllText(LogFilePath, text + "\n");
|
|
}
|
|
} |