Updated log manager
This commit is contained in:
@@ -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();
|
||||||
|
|
||||||
|
|||||||
@@ -30,8 +30,8 @@ public enum UnzipProgressType
|
|||||||
|
|
||||||
public enum SaveType
|
public enum SaveType
|
||||||
{
|
{
|
||||||
NORMAL,
|
TXT,
|
||||||
BACKUP
|
JSON
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum InternalActionRunType
|
public enum InternalActionRunType
|
||||||
|
|||||||
@@ -14,10 +14,16 @@ public class DBLogger
|
|||||||
private readonly List<LogMessage> ErrorHistory = new();
|
private readonly List<LogMessage> ErrorHistory = new();
|
||||||
private readonly List<LogMessage> LogHistory = new();
|
private readonly List<LogMessage> LogHistory = new();
|
||||||
|
|
||||||
public DBLogger()
|
private readonly bool _continuousSave;
|
||||||
|
private readonly bool _LogErrorsOnly;
|
||||||
|
|
||||||
|
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()
|
||||||
{
|
{
|
||||||
if(!ErrorsOnly)
|
await SaveToTxt();
|
||||||
await JsonManager.SaveToJsonFile(_logFolder + "/" + DateTime.Now.ToString("yyyy-MM-dd") + ".json",
|
}
|
||||||
LogHistory);
|
|
||||||
await JsonManager.SaveToJsonFile(_errFolder + "/" + DateTime.Now.ToString("yyyy-MM-dd") + ".json",
|
private async Task SaveToTxt()
|
||||||
ErrorHistory);
|
{
|
||||||
|
if (!_LogErrorsOnly)
|
||||||
|
{
|
||||||
|
var logFile = new LogFile(_logFolder + $"/{DateTime.Today.ToShortDateString().Replace('/', '_')}_log.txt");
|
||||||
|
foreach (var logMessage in LogHistory)
|
||||||
|
logFile.Write(logMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
var errFile = new LogFile(_errFolder + $"/{DateTime.Today.ToShortDateString().Replace('/', '_')}_err.txt");
|
||||||
|
foreach (var logMessage in ErrorHistory)
|
||||||
|
errFile.Write(logMessage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
36
PluginManager/Others/Logger/LogFile.cs
Normal file
36
PluginManager/Others/Logger/LogFile.cs
Normal 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());
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user