steam-deck-tools/CommonHelpers/Log.cs

70 lines
2.3 KiB
C#
Raw Normal View History

using System.Diagnostics;
2022-12-12 15:08:00 +01:00
using System.Reflection;
namespace CommonHelpers
{
public static class Log
{
2022-12-12 15:08:00 +01:00
internal const String SENTRY_DSN = "https://a6f1925b30fe43529aa7cefd0af7b8a4@o37791.ingest.sentry.io/4504316313993216";
2022-11-28 11:04:53 +01:00
#if DEBUG
private static bool LogToTrace = true;
#else
private static bool LogToTrace = false;
#endif
private static bool LogToConsole = Environment.UserInteractive;
2022-12-12 15:08:00 +01:00
internal static void SentryOptions(Sentry.SentryOptions o)
{
2022-12-12 20:03:15 +01:00
var build = Instance.IsDEBUG ? "debug" : "release";
var type = File.Exists("Uninstaller.exe") ? "setup" : "zip";
2022-12-12 15:08:00 +01:00
o.Dsn = Log.SENTRY_DSN;
o.TracesSampleRate = 1.0;
o.IsGlobalModeEnabled = true;
2022-12-12 20:03:15 +01:00
o.Environment = String.Format("{0}:{1}_{2}", Instance.ApplicationName, build, type);
o.DefaultTags.Add("App", Instance.ApplicationName);
2022-12-12 15:08:00 +01:00
o.DefaultTags.Add("MachineID", Instance.MachineID);
2022-12-12 20:03:15 +01:00
o.DefaultTags.Add("Build", type);
o.DefaultTags.Add("Configuration", build);
2022-12-12 15:08:00 +01:00
var releaseVersion = typeof(Log).Assembly.GetCustomAttributes<AssemblyInformationalVersionAttribute>().FirstOrDefault();
if (releaseVersion is not null)
{
o.Release = releaseVersion.InformationalVersion;
}
}
public static void TraceLine(string format, params object?[] arg)
{
2022-11-28 11:04:53 +01:00
if (!LogToTrace && !LogToConsole)
return;
2022-11-28 11:04:53 +01:00
String line = string.Format(format, arg);
if (LogToTrace)
Trace.WriteLine(line);
if (LogToConsole)
Console.WriteLine(line);
}
2022-12-12 15:08:00 +01:00
2022-12-12 18:44:02 +01:00
public static void TraceException(String type, Object? name, Exception e)
{
TraceLine("{0}: {1}: Exception: {2}", type, name, e);
Sentry.SentrySdk.CaptureException(e, scope =>
{
scope.SetTag("type", type);
scope.SetTag("name", name?.ToString() ?? "null");
});
}
2022-12-12 15:08:00 +01:00
public static void TraceException(String type, Exception e)
{
TraceLine("{0}: Exception: {1}", type, e);
Sentry.SentrySdk.CaptureException(e, scope =>
{
scope.SetTag("type", type);
});
}
}
}