private async Task SetupLogFileAsync()
        {
            if (string.IsNullOrWhiteSpace(this.LogPath))
            {
                string logFileName = string.Format(this.LogFileNameFormat, DateTime.Now);

                string logFileFolderPath = string.Empty;

#if WINDOWS_UWP || __ANDROID__ || __IOS__
                XPlat.Storage.IStorageFolder logsFolder =
                    await XPlat.Storage.ApplicationData.Current.LocalFolder.CreateFolderAsync(
                        this.LogsFolderName,
                        XPlat.Storage.CreationCollisionOption.OpenIfExists);

                XPlat.Storage.IStorageFile logFile = await logsFolder.CreateFileAsync(
                                                         logFileName,
                                                         XPlat.Storage.CreationCollisionOption.OpenIfExists);

                logFileFolderPath = logFile.Path;
#elif NETSTANDARD2_0
                string appFolderPath = AppDomain.CurrentDomain.BaseDirectory;
                string logsFolderPath = Path.Combine(appFolderPath, this.LogsFolderName);
#else
                string appFolderPath = AppContext.BaseDirectory;
                string logsFolderPath = Path.Combine(appFolderPath, this.LogsFolderName);
#endif

#if !(WINDOWS_UWP || __ANDROID__ || __IOS__)
                if (!string.IsNullOrWhiteSpace(logsFolderPath))
                {
                    if (!Directory.Exists(logsFolderPath))
                    {
                        Directory.CreateDirectory(logsFolderPath);
                    }

                    logFileFolderPath = Path.Combine(logsFolderPath, logFileName);
                    if (!File.Exists(logFileFolderPath))
                    {
                        File.Create(logFileFolderPath);
                    }
                }
#endif

                this.LogPath = logFileFolderPath;
            }

#if !(WINDOWS_UWP || __ANDROID__ || __IOS__)
            await Task.CompletedTask;
#endif
        }
        private async Task SetupLogFileAsync()
        {
            try
            {
                if (string.IsNullOrWhiteSpace(this.LogPath))
                {
                    string logFileName = string.Format(this.LogFileNameFormat, DateTime.Now);

                    string logFileFolderPath = string.Empty;

#if WINDOWS_UWP || __ANDROID__ || __IOS__
                    XPlat.Storage.IStorageFolder logsFolder =
                        await XPlat.Storage.ApplicationData.Current.LocalFolder.CreateFolderAsync(
                            this.LogsFolderName,
                            XPlat.Storage.CreationCollisionOption.OpenIfExists);

                    XPlat.Storage.IStorageFile logFile = await logsFolder.CreateFileAsync(
                        logFileName,
                        XPlat.Storage.CreationCollisionOption.OpenIfExists);

                    logFileFolderPath = logFile.Path;
#elif NETSTANDARD2_0
                    string appFolderPath  = AppDomain.CurrentDomain.BaseDirectory;
                    string logsFolderPath = Path.Combine(appFolderPath, this.LogsFolderName);
#else
                    string appFolderPath  = AppContext.BaseDirectory;
                    string logsFolderPath = Path.Combine(appFolderPath, this.LogsFolderName);
#endif

#if !(WINDOWS_UWP || __ANDROID__ || __IOS__)
                    if (!string.IsNullOrWhiteSpace(logsFolderPath))
                    {
                        if (!Directory.Exists(logsFolderPath))
                        {
                            Directory.CreateDirectory(logsFolderPath);
                        }

                        logFileFolderPath = Path.Combine(logsFolderPath, logFileName);
                        if (!File.Exists(logFileFolderPath))
                        {
                            File.Create(logFileFolderPath);
                        }
                    }
#endif

                    this.LogPath = logFileFolderPath;
                }
            }
            catch (Exception ex)
            {
                if (System.Diagnostics.Debugger.IsAttached)
                {
                    System.Diagnostics.Debug.WriteLine(
                        $"An exception was thrown while setting up the event log file. Error: {ex}");

                    throw;
                }
            }

#if !(WINDOWS_UWP || __ANDROID__ || __IOS__)
            await Task.CompletedTask;
#endif
        }