fix: use direct file logging in diagnostics

This commit is contained in:
Meik
2026-03-10 10:05:22 +01:00
parent ba3983ad8a
commit 599ee096a0

View File

@@ -34,7 +34,8 @@ namespace LiamWorkflowDiagnostics
private readonly ObservableCollection<string> _logEntries = new ObservableCollection<string>(); private readonly ObservableCollection<string> _logEntries = new ObservableCollection<string>();
private ProviderTestSession _session; private ProviderTestSession _session;
private bool _isInitializingUi; private bool _isInitializingUi;
private dynamic _diagnosticsLogger; private readonly object _diagnosticsLogSync = new object();
private string _diagnosticsLogPath;
private readonly string _settingsPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "LiamWorkflowDiagnostics.settings.json"); private readonly string _settingsPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "LiamWorkflowDiagnostics.settings.json");
public MainWindow() public MainWindow()
@@ -66,10 +67,10 @@ namespace LiamWorkflowDiagnostics
var baseDir = AppDomain.CurrentDomain.BaseDirectory; var baseDir = AppDomain.CurrentDomain.BaseDirectory;
var logDirectory = Path.Combine(baseDir, "logs"); var logDirectory = Path.Combine(baseDir, "logs");
Directory.CreateDirectory(logDirectory); Directory.CreateDirectory(logDirectory);
var logPath = Path.Combine(logDirectory, "LiamWorkflowDiagnostics.log"); _diagnosticsLogPath = Path.Combine(logDirectory, "LiamWorkflowDiagnostics.log");
_diagnosticsLogger = cLogManagerFile.CreateInstance(logPath); cLogManagerFile.CreateInstance(_diagnosticsLogPath);
cLogManager.Instance.Level = LogLevels.Debug; cLogManager.Instance.Level = LogLevels.Debug;
AppendLog($"Logdatei: {logPath} (Level: Debug)"); AppendLog($"Logdatei: {_diagnosticsLogPath} (Level: Debug)");
} }
catch (Exception ex) catch (Exception ex)
{ {
@@ -139,8 +140,14 @@ namespace LiamWorkflowDiagnostics
try try
{ {
if (_diagnosticsLogger != null) if (!string.IsNullOrWhiteSpace(_diagnosticsLogPath))
_diagnosticsLogger.LogEntry(level, message); {
var fileLine = $"{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff} [{level}] {message}{Environment.NewLine}";
lock (_diagnosticsLogSync)
{
File.AppendAllText(_diagnosticsLogPath, fileLine, Encoding.UTF8);
}
}
} }
catch { /* ignore */ } catch { /* ignore */ }
} }