Added first simple logger for CoopClient
This commit is contained in:
@ -92,6 +92,7 @@
|
|||||||
<Compile Include="Entities\Player\Sync\OnFootSync.cs" />
|
<Compile Include="Entities\Player\Sync\OnFootSync.cs" />
|
||||||
<Compile Include="Entities\Player\Sync\VehicleSync.cs" />
|
<Compile Include="Entities\Player\Sync\VehicleSync.cs" />
|
||||||
<Compile Include="JavascriptHook.cs" />
|
<Compile Include="JavascriptHook.cs" />
|
||||||
|
<Compile Include="Logger.cs" />
|
||||||
<Compile Include="Main.cs" />
|
<Compile Include="Main.cs" />
|
||||||
<Compile Include="Menus\MenusMain.cs" />
|
<Compile Include="Menus\MenusMain.cs" />
|
||||||
<Compile Include="Menus\Sub\Servers.cs" />
|
<Compile Include="Menus\Sub\Servers.cs" />
|
||||||
|
@ -50,7 +50,7 @@ namespace CoopClient
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
// TODO
|
Logger.Write(ex.Message, Logger.LogLevel.Server);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -70,7 +70,7 @@ namespace CoopClient
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
// TODO
|
Logger.Write(ex.Message, Logger.LogLevel.Server);
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
|
71
Client/Logger.cs
Normal file
71
Client/Logger.cs
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
namespace CoopClient
|
||||||
|
{
|
||||||
|
internal static class Logger
|
||||||
|
{
|
||||||
|
public enum LogLevel
|
||||||
|
{
|
||||||
|
Normal,
|
||||||
|
Server,
|
||||||
|
Custom
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Write(string message, LogLevel level = LogLevel.Normal, string filepath = null)
|
||||||
|
{
|
||||||
|
string newFilePath = null;
|
||||||
|
|
||||||
|
switch (level)
|
||||||
|
{
|
||||||
|
case LogLevel.Normal:
|
||||||
|
newFilePath = "scripts\\CoopLog.txt";
|
||||||
|
break;
|
||||||
|
case LogLevel.Server:
|
||||||
|
newFilePath = $"scripts\\resources\\{Main.MainSettings.LastServerAddress.Replace(":", ".")}\\CoopLog.txt";
|
||||||
|
break;
|
||||||
|
case LogLevel.Custom:
|
||||||
|
if (string.IsNullOrEmpty(filepath))
|
||||||
|
{
|
||||||
|
goto case LogLevel.Normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
newFilePath = filepath;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (File.Exists(newFilePath))
|
||||||
|
{
|
||||||
|
// Check if the rows are under 20 and delete the first 10 if so to avoid large logs
|
||||||
|
// Firstly get all lines
|
||||||
|
string[] oldLines = File.ReadAllLines(newFilePath);
|
||||||
|
|
||||||
|
// Check the length of the lines
|
||||||
|
if (oldLines.Length >= 20)
|
||||||
|
{
|
||||||
|
// Now overwrite the file without the first 10 lines
|
||||||
|
File.WriteAllLines(newFilePath, oldLines.Skip(10).ToArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
using (StreamWriter sw = new StreamWriter(newFilePath, true))
|
||||||
|
{
|
||||||
|
Log(message, sw);
|
||||||
|
|
||||||
|
sw.Flush();
|
||||||
|
sw.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{ }
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void Log(string message, TextWriter writer)
|
||||||
|
{
|
||||||
|
writer.WriteLine($"[{DateTime.Now.ToLongTimeString()} {DateTime.Now.ToLongDateString()}] : {message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user