// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for details. using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Threading.Tasks; using MyDriving.Utils; using MyDriving.Utils.Interfaces; namespace MyDriving.Shared { /// /// Platform specific logging, mostly for debug write lines or HockeyApp /// public class PlatformLogger : Logger { public override void Identify(string uid, IDictionary table = null) { Debug.WriteLine("Logger: Identify: " + uid); base.Identify(uid, table); } public override void Identify(string uid, string key, string value) { Debug.WriteLine("Logger: Identify: " + uid + " key: " + key + " value: " + value); base.Identify(uid, key, value); } public override void Track(string trackIdentifier, IDictionary table = null) { Debug.WriteLine("Logger: Track: " + trackIdentifier); #if __ANDROID__ HockeyApp.Metrics.MetricsManager.TrackEvent(trackIdentifier); #elif __IOS__ HockeyApp.BITHockeyManager.SharedHockeyManager?.MetricsManager?.TrackEvent(trackIdentifier); #elif WINDOWS_UWP Microsoft.HockeyApp.HockeyClient.Current.TrackEvent(trackIdentifier); #endif base.Track(trackIdentifier, table); } public override void Track(string trackIdentifier, string key, string value) { Debug.WriteLine("Logger: Track: " + trackIdentifier + " key: " + key + " value: " + value); #if __ANDROID__ HockeyApp.Metrics.MetricsManager.TrackEvent(trackIdentifier); #elif __IOS__ HockeyApp.BITHockeyManager.SharedHockeyManager?.MetricsManager?.TrackEvent(trackIdentifier); #elif WINDOWS_UWP Microsoft.HockeyApp.HockeyClient.Current.TrackEvent(trackIdentifier); #endif base.Track(trackIdentifier, key, value); } public override ITrackHandle TrackTime(string identifier, IDictionary table = null) { Debug.WriteLine("Logger: TrackTime: " + identifier); Track(identifier); return base.TrackTime(identifier, table); } public override ITrackHandle TrackTime(string identifier, string key, string value) { Debug.WriteLine("Logger: TrackTime: " + identifier + " key: " + key + " value: " + value); Track(identifier); return base.TrackTime(identifier, key, value); } public override void Report(Exception exception) { Track("Handled: " + exception.ToString()); Debug.WriteLine("Logger: Report: " + exception); base.Report(exception); } public override Task Save() { Debug.WriteLine("Logger: Save"); return base.Save(); } public override Task PurgePendingCrashReports() { Debug.WriteLine("Logger: PurgePendingCrashReports"); return base.PurgePendingCrashReports(); } } }