// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
usingSystem;
usingSystem.Collections.Concurrent;
usingMicrosoft.CodeAnalysis.Internal.Log;
usingRoslyn.Utilities;
namespaceMicrosoft.CodeAnalysis.Remote.Telemetry
{
internalstaticclassVSTelemetryCache
{
publicconststringEventPrefix="vs/ide/vbcs/";
publicconststringPropertyPrefix="vs.ide.vbcs.";
// these don't have concurrency limit on purpose to reduce chance of lock contention.
// if that becomes a problem - by showing up in our perf investigation, then we will consider adding concurrency limit.
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
usingSystem.Threading;
usingMicrosoft.CodeAnalysis.Internal.Log;
usingMicrosoft.VisualStudio.Telemetry;
usingRoslyn.Utilities;
namespaceMicrosoft.CodeAnalysis.Remote.Telemetry
{
internalclassVSTelemetryLogger:ILogger
{
/// <summary>
/// Telemetry session. can be null if it is not available in current context
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
usingSystem;
usingMicrosoft.CodeAnalysis.Internal.Log;
usingMicrosoft.VisualStudio.Telemetry;
namespaceMicrosoft.CodeAnalysis.Remote.Telemetry
{
internalclassWatsonReporter
{
/// <summary>
/// Report Non-Fatal Watson
/// </summary>
/// <param name="exception">Exception that triggered this non-fatal error</param>
publicstaticvoidReport(Exceptionexception)
{
Report("Roslyn NonFatal Watson",exception);
}
/// <summary>
/// Report Non-Fatal Watson
/// </summary>
/// <param name="description">any description you want to save with this watson report</param>
/// <param name="exception">Exception that triggered this non-fatal error</param>