Updated log manager

This commit is contained in:
2023-09-07 13:28:49 +03:00
parent 92a18e3495
commit 0d8fdb5904
4 changed files with 66 additions and 11 deletions

View File

@@ -32,7 +32,7 @@ public class Config
AppSettings["LogFolder"] = "./Data/Logs/Logs"; AppSettings["LogFolder"] = "./Data/Logs/Logs";
AppSettings["ErrorFolder"] = "./Data/Logs/Errors"; AppSettings["ErrorFolder"] = "./Data/Logs/Errors";
Logger = new DBLogger(); Logger = new DBLogger(true);
ArchiveManager.Initialize(); ArchiveManager.Initialize();

View File

@@ -30,8 +30,8 @@ public enum UnzipProgressType
public enum SaveType public enum SaveType
{ {
NORMAL, TXT,
BACKUP JSON
} }
public enum InternalActionRunType public enum InternalActionRunType

View File

@@ -13,11 +13,17 @@ public class DBLogger
private readonly string _logFolder; private readonly string _logFolder;
private readonly List<LogMessage> ErrorHistory = new(); private readonly List<LogMessage> ErrorHistory = new();
private readonly List<LogMessage> LogHistory = new(); private readonly List<LogMessage> LogHistory = new();
private readonly bool _continuousSave;
private readonly bool _LogErrorsOnly;
public DBLogger() public DBLogger(bool continuousSave = true, bool logErrorsOnly = true)
{ {
_logFolder = Config.AppSettings["LogFolder"]; _logFolder = Config.AppSettings["LogFolder"];
_errFolder = Config.AppSettings["ErrorFolder"]; _errFolder = Config.AppSettings["ErrorFolder"];
_continuousSave = continuousSave;
_LogErrorsOnly = logErrorsOnly;
} }
public IReadOnlyList<LogMessage> Logs => LogHistory; public IReadOnlyList<LogMessage> Logs => LogHistory;
@@ -50,7 +56,7 @@ public class DBLogger
Log(e.Message, e.Source, LogLevel.ERROR); Log(e.Message, e.Source, LogLevel.ERROR);
} }
public void Log(LogMessage message) private async void Log(LogMessage message)
{ {
LogEvent?.Invoke(message.Message, message.Type); LogEvent?.Invoke(message.Message, message.Type);
@@ -58,6 +64,9 @@ public class DBLogger
LogHistory.Add(message); LogHistory.Add(message);
else else
ErrorHistory.Add(message); ErrorHistory.Add(message);
if (_continuousSave)
await SaveToFile();
} }
public void Log(string message, object sender, LogLevel type = LogLevel.INFO) public void Log(string message, object sender, LogLevel type = LogLevel.INFO)
@@ -65,12 +74,22 @@ public class DBLogger
Log(message, sender.GetType().Name, type); Log(message, sender.GetType().Name, type);
} }
public async Task SaveToFile(bool ErrorsOnly = true) public async Task SaveToFile()
{
await SaveToTxt();
}
private async Task SaveToTxt()
{ {
if(!ErrorsOnly) if (!_LogErrorsOnly)
await JsonManager.SaveToJsonFile(_logFolder + "/" + DateTime.Now.ToString("yyyy-MM-dd") + ".json", {
LogHistory); var logFile = new LogFile(_logFolder + $"/{DateTime.Today.ToShortDateString().Replace('/', '_')}_log.txt");
await JsonManager.SaveToJsonFile(_errFolder + "/" + DateTime.Now.ToString("yyyy-MM-dd") + ".json", foreach (var logMessage in LogHistory)
ErrorHistory); logFile.Write(logMessage);
}
var errFile = new LogFile(_errFolder + $"/{DateTime.Today.ToShortDateString().Replace('/', '_')}_err.txt");
foreach (var logMessage in ErrorHistory)
errFile.Write(logMessage);
} }
} }

View File

@@ -0,0 +1,36 @@
using System.IO;
namespace PluginManager.Others.Logger;
public class LogFile
{
public FileInfo File { get; set; }
public LogFile(string path)
{
File = new FileInfo(path);
}
public void Write(string message)
{
using var sw = File.AppendText();
sw.WriteLine(message);
}
public void Write(string message, LogLevel type)
{
using var sw = File.AppendText();
sw.WriteLine($"[{type}] {message}");
}
public void Write(string message, string sender, LogLevel type)
{
using var sw = File.AppendText();
sw.WriteLine($"[{type}] [{sender}] {message}");
}
public void Write(LogMessage logMessage)
{
using var sw = File.AppendText();
sw.WriteLine(logMessage.ToString());
}
}