コード例 #1
0
ファイル: Logger.cs プロジェクト: justcla/SidePanelSwitcher
        public static void MessageBox(string title, string message, __ACTIVITYLOG_ENTRYTYPE entryType)
        {
            ThreadHelper.ThrowIfNotOnUIThread();

            var icon = OLEMSGICON.OLEMSGICON_INFO;

            if (entryType == __ACTIVITYLOG_ENTRYTYPE.ALE_ERROR)
            {
                icon = OLEMSGICON.OLEMSGICON_CRITICAL;
            }
            else if (entryType == __ACTIVITYLOG_ENTRYTYPE.ALE_WARNING)
            {
                icon = OLEMSGICON.OLEMSGICON_WARNING;
            }

            var uiShell = ServiceProvider.GetService(typeof(SVsUIShell)) as IVsUIShell;

            Assumes.Present(uiShell);

            var clsid = Guid.Empty;

            // ReSharper disable once PossibleNullReferenceException
            uiShell.ShowMessageBox(
                0,
                ref clsid,
                title,
                message,
                string.Empty,
                0,
                OLEMSGBUTTON.OLEMSGBUTTON_OK,
                OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST,
                icon,
                0,
                out _);
        }
コード例 #2
0
        private void Log(string message, __ACTIVITYLOG_ENTRYTYPE msgType)
        {
            var logger = _serviceProvider.GetService(typeof(SVsActivityLog)) as IVsActivityLog;

            Debug.Assert(logger!=null);

            logger.LogEntry((uint)msgType, "RuntimeTestCoverage", message);
        }
コード例 #3
0
 private static void LogToActivityLog(string message, __ACTIVITYLOG_ENTRYTYPE type)
 {
     ThreadHelper.JoinableTaskFactory.RunAsync(async() =>
     {
         await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
         ActivityLog.LogEntry((uint)type, Vsix.Name, message);
     });
 }
コード例 #4
0
 /// <summary>
 /// 使用IVsActivityLog服务记录VS日志.
 /// </summary>
 void LogEntry(__ACTIVITYLOG_ENTRYTYPE type, string message)
 {
     if (vsActivityLog != null)
     {
         int hr = vsActivityLog.LogEntry((UInt32)type, this.ToString(), message);
         ErrorHandler.ThrowOnFailure(hr);
     }
 }
コード例 #5
0
            private void Log(__ACTIVITYLOG_ENTRYTYPE type, string message, params object[] arguments)
            {
                var log = package.GetService(typeof(SVsActivityLog)) as IVsActivityLog;

                if (log == null)
                {
                    return;
                }
                log.LogEntry((UInt32)type, "SwitchStartupProject", string.Format(CultureInfo.CurrentCulture, message, arguments));
            }
コード例 #6
0
        private void WriteEntry(__ACTIVITYLOG_ENTRYTYPE entryType, string description)
        {
            ThreadHelper.JoinableTaskFactory.Run(async delegate {
                await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
                if (!(await _package.GetServiceAsync(typeof(SVsActivityLog)) is IVsActivityLog logger))
                {
                    return;
                }

                logger.LogEntry((uint)__ACTIVITYLOG_ENTRYTYPE.ALE_ERROR, _package.ToString(), description);
            });
コード例 #7
0
ファイル: Logger.cs プロジェクト: justcla/SidePanelSwitcher
        // NOTE: https://docs.microsoft.com/en-us/visualstudio/extensibility/how-to-use-the-activity-log?view=vs-2019
        public static void Log(string message, __ACTIVITYLOG_ENTRYTYPE entryType)
        {
            ThreadHelper.ThrowIfNotOnUIThread();

            var log = ServiceProvider.GetService(typeof(SVsActivityLog)) as IVsActivityLog;

            Assumes.Present(log);

            // ReSharper disable once PossibleNullReferenceException
            log.LogEntry((uint)entryType, _package.ToString(), message);
        }
コード例 #8
0
        private static void Write(__ACTIVITYLOG_ENTRYTYPE entryType, string message, object[] args)
        {
            string entry = string.Format(message, args);

            if (iVsLog != null)
            {
                iVsLog.LogEntry((uint)entryType, "Gadgeteer", entry);
            }
            Trace.WriteLine(entry);

            //Debug.Assert(entryType != __ACTIVITYLOG_ENTRYTYPE.ALE_ERROR, entry);
        }
コード例 #9
0
        private async System.Threading.Tasks.Task Log(__ACTIVITYLOG_ENTRYTYPE type, string message, params object[] arguments)
        {
            await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();

            var log = _serviceProvider.GetService(typeof(SVsActivityLog)) as IVsActivityLog;

            if (log == null)
            {
                return;
            }

            log.LogEntry((UInt32)type, _packageOrComponentName, string.Format(CultureInfo.CurrentCulture, message, arguments));
        }
コード例 #10
0
        private async Task LogMessageAsync(__ACTIVITYLOG_ENTRYTYPE actType, string message)
        {
            await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();

            // ReSharper disable once SuspiciousTypeConversion.Global
            var log = (IVsActivityLog)GodotPackage.Instance.GetService <SVsActivityLog>();

            if (log == null)
            {
                return;
            }

            _ = log.LogEntry((uint)actType, this.ToString(), message);
        }
コード例 #11
0
        private void ActivityLogEntry(__ACTIVITYLOG_ENTRYTYPE entryType, string message)
        {
            OutputMessage(message);

            // Logs to %AppData%\Microsoft\VisualStudio\14.0\ActivityLog.XML.
            // Obtain the activity log just before writing to it, do not cache or save the activity log for future use.
            var log = GetService(typeof(SVsActivityLog)) as IVsActivityLog;

            if (log == null)
            {
                return;
            }

            ErrorHandler.ThrowOnFailure(log.LogEntryGuid((uint)entryType, ToString(), message, AsqaPackageGuid));
        }
コード例 #12
0
        internal async Task <bool> TryWriteToActivityLogAsync(__ACTIVITYLOG_ENTRYTYPE kind, string text)
        {
            await JoinableTaskFactory.SwitchToMainThreadAsync(DisposalToken);

            // Reminder: "You should obtain the activity log just before writing to it. Do not cache or save the activity log for future use."
            // See: https://docs.microsoft.com/en-us/visualstudio/extensibility/how-to-use-the-activity-log?view=vs-2017
            var log = await GetServiceAsync(typeof(SVsActivityLog)) as IVsActivityLog;

            if (log == null)
            {
                return(false);
            }

            log.LogEntry((uint)kind, ToString(), text);
            return(true);
        }
コード例 #13
0
            private void Log(string text, __ACTIVITYLOG_ENTRYTYPE type)
            {
                if (!this.IsForeground())
                {
                    this.InvokeBelowInputPriority(() => Log(text, type));
                    return;
                }

                AssertIsForeground();
                _activityLog?.LogEntry((uint)type, HostId, text);

                // Keep a running in memory log as well for debugging purposes.
                s_log.AddLast(text);
                while (s_log.Count > 100)
                {
                    s_log.RemoveFirst();
                }
            }
コード例 #14
0
        private void ActivityLogEntry(__ACTIVITYLOG_ENTRYTYPE entryType, string message)
        {
            debug_message(message);

            // Logs to %AppData%\Microsoft\VisualStudio\14.0\ActivityLog.XML.
            // Recommended to obtain the activity log just before writing to it. Do not cache or save the activity log for future use.
            var log = GetService(typeof(SVsActivityLog)) as IVsActivityLog;

            if (log == null)
            {
                return;
            }

            int hr = log.LogEntryGuid(
                (UInt32)entryType,
                this.ToString(),
                message,
                SsmsSchemaFoldersPackage.PackageGuid);
        }
コード例 #15
0
        private async void Log(__ACTIVITYLOG_ENTRYTYPE logType, string message)
        {
            // This is an async void method. Catch all exceptions so it doesn't crash the process.
            try
            {
                await _joinableTaskFactory.SwitchToMainThreadAsync();

                var activityLog = GetActivityLog();
                if (activityLog != null)
                {
                    var hr = activityLog.LogEntry(
                        (uint)logType,
                        "Razor LSP Client",
                        $"Info:{Environment.NewLine}{message}");
                    ErrorHandler.ThrowOnFailure(hr);
                }
            }
            catch (Exception ex)
            {
                Debug.Fail($"Razor LSP client logging failed. Error: {ex.Message}");
            }
        }
コード例 #16
0
ファイル: Logger.cs プロジェクト: sureshdontha/LibraryManager
 private static void LogToActivityLog(string message, __ACTIVITYLOG_ENTRYTYPE type)
 {
     ThreadHelper.Generic.BeginInvoke(() => ActivityLog.LogEntry((uint)type, Vsix.Name, message));
 }
コード例 #17
0
 private ValueTask LogAsync(string text, __ACTIVITYLOG_ENTRYTYPE type)
 {
     Log(text, type);
     return(default);
コード例 #18
0
 private Task LogAsync(string text, __ACTIVITYLOG_ENTRYTYPE type)
 {
     Log(text, type);
     return(SpecializedTasks.EmptyTask);
 }
コード例 #19
0
 private Task LogAsync(string text, __ACTIVITYLOG_ENTRYTYPE type)
 {
     Log(text, type);
     return(Task.CompletedTask);
 }
コード例 #20
0
 private Task LogAsync(string text, __ACTIVITYLOG_ENTRYTYPE type)
 {
     Log(text, type);
     return SpecializedTasks.EmptyTask;
 }
コード例 #21
0
ファイル: ActivityLogger.cs プロジェクト: mthamil/PSycheTest
 private void Log(__ACTIVITYLOG_ENTRYTYPE level, string message, params object[] arguments)
 {
     _activityLog.LogEntry((uint)level, _logType.Name, String.Format(message, arguments));
 }
コード例 #22
0
 /// <summary>
 /// 使用IVsActivityLog服务记录VS日志.
 /// </summary>
 void LogEntry(__ACTIVITYLOG_ENTRYTYPE type, string message)
 {
     if (vsActivityLog != null)
     {
         int hr = vsActivityLog.LogEntry((UInt32)type, this.ToString(), message);
         ErrorHandler.ThrowOnFailure(hr);
     }
 }
コード例 #23
0
ファイル: Logger.cs プロジェクト: campersau/LibraryInstaller
 private static void LogToActivityLog(string message, __ACTIVITYLOG_ENTRYTYPE type)
 {
     _activityLog.LogEntry((uint)type, Vsix.Name, message);
 }