aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Common/Logging/Targets
diff options
context:
space:
mode:
authorTSR Berry <20988865+TSRBerry@users.noreply.github.com>2023-04-08 01:22:00 +0200
committerMary <thog@protonmail.com>2023-04-27 23:51:14 +0200
commitcee712105850ac3385cd0091a923438167433f9f (patch)
tree4a5274b21d8b7f938c0d0ce18736d3f2993b11b1 /Ryujinx.Common/Logging/Targets
parentcd124bda587ef09668a971fa1cac1c3f0cfc9f21 (diff)
Move solution and projects to src
Diffstat (limited to 'Ryujinx.Common/Logging/Targets')
-rw-r--r--Ryujinx.Common/Logging/Targets/AsyncLogTargetWrapper.cs79
-rw-r--r--Ryujinx.Common/Logging/Targets/ConsoleLogTarget.cs41
-rw-r--r--Ryujinx.Common/Logging/Targets/FileLogTarget.cs55
-rw-r--r--Ryujinx.Common/Logging/Targets/ILogTarget.cs11
-rw-r--r--Ryujinx.Common/Logging/Targets/JsonLogTarget.cs40
5 files changed, 0 insertions, 226 deletions
diff --git a/Ryujinx.Common/Logging/Targets/AsyncLogTargetWrapper.cs b/Ryujinx.Common/Logging/Targets/AsyncLogTargetWrapper.cs
deleted file mode 100644
index 43c62d31..00000000
--- a/Ryujinx.Common/Logging/Targets/AsyncLogTargetWrapper.cs
+++ /dev/null
@@ -1,79 +0,0 @@
-using System;
-using System.Collections.Concurrent;
-using System.Threading;
-
-namespace Ryujinx.Common.Logging
-{
- public enum AsyncLogTargetOverflowAction
- {
- /// <summary>
- /// Block until there's more room in the queue
- /// </summary>
- Block = 0,
-
- /// <summary>
- /// Discard the overflowing item
- /// </summary>
- Discard = 1
- }
-
- public class AsyncLogTargetWrapper : ILogTarget
- {
- private ILogTarget _target;
-
- private Thread _messageThread;
-
- private BlockingCollection<LogEventArgs> _messageQueue;
-
- private readonly int _overflowTimeout;
-
- string ILogTarget.Name { get => _target.Name; }
-
- public AsyncLogTargetWrapper(ILogTarget target)
- : this(target, -1, AsyncLogTargetOverflowAction.Block)
- { }
-
- public AsyncLogTargetWrapper(ILogTarget target, int queueLimit, AsyncLogTargetOverflowAction overflowAction)
- {
- _target = target;
- _messageQueue = new BlockingCollection<LogEventArgs>(queueLimit);
- _overflowTimeout = overflowAction == AsyncLogTargetOverflowAction.Block ? -1 : 0;
-
- _messageThread = new Thread(() => {
- while (!_messageQueue.IsCompleted)
- {
- try
- {
- _target.Log(this, _messageQueue.Take());
- }
- catch (InvalidOperationException)
- {
- // IOE means that Take() was called on a completed collection.
- // Some other thread can call CompleteAdding after we pass the
- // IsCompleted check but before we call Take.
- // We can simply catch the exception since the loop will break
- // on the next iteration.
- }
- }
- });
-
- _messageThread.Name = "Logger.MessageThread";
- _messageThread.IsBackground = true;
- _messageThread.Start();
- }
-
- public void Log(object sender, LogEventArgs e)
- {
- if (!_messageQueue.IsAddingCompleted)
- {
- _messageQueue.TryAdd(e, _overflowTimeout);
- }
- }
-
- public void Dispose()
- {
- _messageQueue.CompleteAdding();
- _messageThread.Join();
- }
- }
-} \ No newline at end of file
diff --git a/Ryujinx.Common/Logging/Targets/ConsoleLogTarget.cs b/Ryujinx.Common/Logging/Targets/ConsoleLogTarget.cs
deleted file mode 100644
index 7b77c4f2..00000000
--- a/Ryujinx.Common/Logging/Targets/ConsoleLogTarget.cs
+++ /dev/null
@@ -1,41 +0,0 @@
-using System;
-
-namespace Ryujinx.Common.Logging
-{
- public class ConsoleLogTarget : ILogTarget
- {
- private readonly ILogFormatter _formatter;
-
- private readonly string _name;
-
- string ILogTarget.Name { get => _name; }
-
- private static ConsoleColor GetLogColor(LogLevel level) => level switch {
- LogLevel.Info => ConsoleColor.White,
- LogLevel.Warning => ConsoleColor.Yellow,
- LogLevel.Error => ConsoleColor.Red,
- LogLevel.Stub => ConsoleColor.DarkGray,
- LogLevel.Notice => ConsoleColor.Cyan,
- LogLevel.Trace => ConsoleColor.DarkCyan,
- _ => ConsoleColor.Gray,
- };
-
- public ConsoleLogTarget(string name)
- {
- _formatter = new DefaultLogFormatter();
- _name = name;
- }
-
- public void Log(object sender, LogEventArgs args)
- {
- Console.ForegroundColor = GetLogColor(args.Level);
- Console.WriteLine(_formatter.Format(args));
- Console.ResetColor();
- }
-
- public void Dispose()
- {
- Console.ResetColor();
- }
- }
-}
diff --git a/Ryujinx.Common/Logging/Targets/FileLogTarget.cs b/Ryujinx.Common/Logging/Targets/FileLogTarget.cs
deleted file mode 100644
index 24dd6d17..00000000
--- a/Ryujinx.Common/Logging/Targets/FileLogTarget.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-using System;
-using System.IO;
-using System.Linq;
-
-namespace Ryujinx.Common.Logging
-{
- public class FileLogTarget : ILogTarget
- {
- private readonly StreamWriter _logWriter;
- private readonly ILogFormatter _formatter;
- private readonly string _name;
-
- string ILogTarget.Name { get => _name; }
-
- public FileLogTarget(string path, string name)
- : this(path, name, FileShare.Read, FileMode.Append)
- { }
-
- public FileLogTarget(string path, string name, FileShare fileShare, FileMode fileMode)
- {
- // Ensure directory is present
- DirectoryInfo logDir = new DirectoryInfo(Path.Combine(path, "Logs"));
- logDir.Create();
-
- // Clean up old logs, should only keep 3
- FileInfo[] files = logDir.GetFiles("*.log").OrderBy((info => info.CreationTime)).ToArray();
- for (int i = 0; i < files.Length - 2; i++)
- {
- files[i].Delete();
- }
-
- string version = ReleaseInformation.GetVersion();
-
- // Get path for the current time
- path = Path.Combine(logDir.FullName, $"Ryujinx_{version}_{DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss")}.log");
-
- _name = name;
- _logWriter = new StreamWriter(File.Open(path, fileMode, FileAccess.Write, fileShare));
- _formatter = new DefaultLogFormatter();
- }
-
- public void Log(object sender, LogEventArgs args)
- {
- _logWriter.WriteLine(_formatter.Format(args));
- _logWriter.Flush();
- }
-
- public void Dispose()
- {
- _logWriter.WriteLine("---- End of Log ----");
- _logWriter.Flush();
- _logWriter.Dispose();
- }
- }
-}
diff --git a/Ryujinx.Common/Logging/Targets/ILogTarget.cs b/Ryujinx.Common/Logging/Targets/ILogTarget.cs
deleted file mode 100644
index d4d26a93..00000000
--- a/Ryujinx.Common/Logging/Targets/ILogTarget.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using System;
-
-namespace Ryujinx.Common.Logging
-{
- public interface ILogTarget : IDisposable
- {
- void Log(object sender, LogEventArgs args);
-
- string Name { get; }
- }
-}
diff --git a/Ryujinx.Common/Logging/Targets/JsonLogTarget.cs b/Ryujinx.Common/Logging/Targets/JsonLogTarget.cs
deleted file mode 100644
index 06976433..00000000
--- a/Ryujinx.Common/Logging/Targets/JsonLogTarget.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-using Ryujinx.Common.Utilities;
-using System.IO;
-
-namespace Ryujinx.Common.Logging
-{
- public class JsonLogTarget : ILogTarget
- {
- private Stream _stream;
- private bool _leaveOpen;
- private string _name;
-
- string ILogTarget.Name { get => _name; }
-
- public JsonLogTarget(Stream stream, string name)
- {
- _stream = stream;
- _name = name;
- }
-
- public JsonLogTarget(Stream stream, bool leaveOpen)
- {
- _stream = stream;
- _leaveOpen = leaveOpen;
- }
-
- public void Log(object sender, LogEventArgs e)
- {
- var logEventArgsJson = LogEventArgsJson.FromLogEventArgs(e);
- JsonHelper.SerializeToStream(_stream, logEventArgsJson, LogEventJsonSerializerContext.Default.LogEventArgsJson);
- }
-
- public void Dispose()
- {
- if (!_leaveOpen)
- {
- _stream.Dispose();
- }
- }
- }
-}