/// <summary> /// Fetch diagnostic startup log data. /// </summary> public Task <DiagnosticLogMethodResponseModel> GetDiagnosticStartupLogAsync() { DiagnosticLogMethodResponseModel diagnosticLogMethodResponseModel = new DiagnosticLogMethodResponseModel(); diagnosticLogMethodResponseModel.MissedMessageCount = 0; diagnosticLogMethodResponseModel.LogMessageCount = _startupLog.Count; if (DiagnosticsInterval >= 0) { if (StartupCompleted) { diagnosticLogMethodResponseModel.Log.AddRange(_startupLog); } else { diagnosticLogMethodResponseModel.Log.Add("Startup is not yet completed. Please try later."); } } else { diagnosticLogMethodResponseModel.Log.Add("Diagnostic log is disabled. Please use --di to enable it."); } return(Task.FromResult(diagnosticLogMethodResponseModel)); }
/// <summary> /// Fetch diagnostic log data. /// </summary> public async Task <DiagnosticLogMethodResponseModel> GetDiagnosticLogAsync() { DiagnosticLogMethodResponseModel diagnosticLogMethodResponseModel = new DiagnosticLogMethodResponseModel(); diagnosticLogMethodResponseModel.MissedMessageCount = _missedMessageCount; diagnosticLogMethodResponseModel.LogMessageCount = _logMessageCount; if (DiagnosticsInterval >= 0) { if (StartupCompleted) { List <string> log = new List <string>(); await _logQueueSemaphore.WaitAsync().ConfigureAwait(false); try { string message; while ((message = ReadLog()) != null) { log.Add(message); } } finally { diagnosticLogMethodResponseModel.MissedMessageCount = _missedMessageCount; _missedMessageCount = 0; _logQueueSemaphore.Release(); } diagnosticLogMethodResponseModel.Log.AddRange(log); } else { diagnosticLogMethodResponseModel.Log.Add("Startup is not yet completed. Please try later."); } } else { diagnosticLogMethodResponseModel.Log.Add("Diagnostic log is disabled. Please use --di to enable it."); } return(diagnosticLogMethodResponseModel); }
/// <summary> /// Fetch diagnostic log data. /// </summary> public static async Task <DiagnosticLogMethodResponseModel> GetDiagnosticLogAsync() { DiagnosticLogMethodResponseModel diagnosticLogMethodResponseModel = new DiagnosticLogMethodResponseModel(); diagnosticLogMethodResponseModel.MissedMessageCount = _missedMessageCount; diagnosticLogMethodResponseModel.LogMessageCount = _logMessageCount; diagnosticLogMethodResponseModel.StartupLogMessageCount = _startupLog.Count; if (StartupCompleted) { List <string> log = new List <string>(); if (DiagnosticsInterval >= 0) { await _logQueueSemaphore.WaitAsync(); try { string message; while ((message = ReadLog()) != null) { log.Add(message); } } finally { diagnosticLogMethodResponseModel.MissedMessageCount = _missedMessageCount; _missedMessageCount = 0; _logQueueSemaphore.Release(); } } else { _startupLog.Add("Diagnostic log is disabled in OPC Publisher. Please use --di to enable it."); log.Add("Diagnostic log is disabled in OPC Publisher. Please use --di to enable it."); } diagnosticLogMethodResponseModel.StartupLog = _startupLog.ToArray(); diagnosticLogMethodResponseModel.Log = log.ToArray(); } return(diagnosticLogMethodResponseModel); }