Beispiel #1
0
        /// <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));
        }
Beispiel #2
0
        /// <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);
        }