From a87aad366b3e6daaa4e4e3ed502cff96452ee0fe Mon Sep 17 00:00:00 2001 From: Mike Nolan Date: Wed, 4 May 2022 08:23:06 -0500 Subject: [PATCH] hopefully fix logging --- Tesses.YouTubeDownloader/Logging.cs | 46 +++++++++++++------ .../Tesses.YouTubeDownloader.csproj | 6 +-- 2 files changed, 35 insertions(+), 17 deletions(-) diff --git a/Tesses.YouTubeDownloader/Logging.cs b/Tesses.YouTubeDownloader/Logging.cs index 84893e6..321e674 100644 --- a/Tesses.YouTubeDownloader/Logging.cs +++ b/Tesses.YouTubeDownloader/Logging.cs @@ -18,19 +18,25 @@ using System.Text; namespace Tesses.YouTubeDownloader { + internal class LockObj + { + + } public partial class TYTDStorage { - private Mutex mtx0=new Mutex(); + internal static LockObj o=new LockObj(); + private Logger _log=null; public Logger GetLogger() { - mtx0.WaitOne(); - if(_log == null) - { - _log = new Logger(this); + lock(o){ + if(_log == null) + { + _log = new Logger(this); + } + + return _log; } - mtx0.ReleaseMutex(); - return _log; } } public class LoggerProperties @@ -48,7 +54,7 @@ namespace Tesses.YouTubeDownloader } public class Logger { - Mutex mtx=new Mutex(); + private string _filename; private TYTDStorage _storage; @@ -94,7 +100,13 @@ namespace Tesses.YouTubeDownloader else Console.WriteLine(message); } - public async Task WriteAsync(string message,bool writeToConsole=false, bool isError=false,bool log=true) + public async Task WriteAsync(string message,bool writeToConsole=false,bool isError=false,bool log=true) + { + await Task.Run(()=>{ + Write(message,writeToConsole,isError,log); + }); + } + public void Write(string message,bool writeToConsole=false, bool isError=false,bool log=true) { if(writeToConsole) WriteStd(message,isError); @@ -108,18 +120,24 @@ namespace Tesses.YouTubeDownloader msg.AppendLine($"{dat.ToShortDateString()} at {dat.ToShortTimeString()}:"); } msg.AppendLine(message); - mtx.WaitOne(); - using(var strm = await _storage.OpenOrCreateAsync(_filename)) + lock(TYTDStorage.o){ + try{ + using(var strm = _storage.OpenOrCreateAsync(_filename).GetAwaiter().GetResult()) { if(!strm.CanSeek) return; strm.Seek(0,SeekOrigin.End); using(var sw = new StreamWriter(strm)) { - await sw.WriteLineAsync(msg.ToString()); + sw.WriteLine(msg.ToString()); } - } - mtx.ReleaseMutex(); + } } + catch(Exception ex) + { + _=ex; + } + //mtx.ReleaseMutex(); + } } public async Task WriteAsync(Exception ex) diff --git a/Tesses.YouTubeDownloader/Tesses.YouTubeDownloader.csproj b/Tesses.YouTubeDownloader/Tesses.YouTubeDownloader.csproj index c056f90..a0c4203 100644 --- a/Tesses.YouTubeDownloader/Tesses.YouTubeDownloader.csproj +++ b/Tesses.YouTubeDownloader/Tesses.YouTubeDownloader.csproj @@ -7,9 +7,9 @@ Tesses.YouTubeDownloader Mike Nolan Tesses - 1.0.2.3 - 1.0.2.3 - 1.0.2.3 + 1.0.2.4 + 1.0.2.4 + 1.0.2.4 A YouTube Downloader LGPL-3.0-only true