Reporter improvement + Show it when the last run crashed, an event with show = true took place and when the user presses F8.

This commit is contained in:
lukeIam committed 2018-01-19 19:04:11 +01:00
1 parent d9a98fcd14
commit de4e3e3f5f
7 files changed
+280 -185

No files matched your search

+5
View File
@@ -443,6 +443,11 @@ namespace Vocaluxe.Base
HidePopup(EPopupScreens.PopupServerQR);
}
if (keyEvent.Key == Keys.F8)
{
CLog.ShowLogAssistent("", null);
}
if (popupPlayerControlAllowed && keyEvent.Key == Keys.Tab)
{
if (_CurrentPopupScreen == EPopupScreens.NoPopup && CConfig.Config.Sound.BackgroundMusic == EBackgroundMusicOffOn.TR_CONFIG_ON)
+137 -106
View File
@@ -29,107 +29,111 @@
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CReporter));
this.Title = new System.Windows.Forms.Label();
this.Message = new System.Windows.Forms.TextBox();
this.Log = new System.Windows.Forms.TextBox();
this.GistOnly = new System.Windows.Forms.RadioButton();
this.GistAndIssue = new System.Windows.Forms.RadioButton();
this.NoUpload = new System.Windows.Forms.RadioButton();
this.Submit = new System.Windows.Forms.Button();
this.TitleLabel = new System.Windows.Forms.Label();
this.MessageText = new System.Windows.Forms.TextBox();
this.LogBox = new System.Windows.Forms.TextBox();
this.GistOnlySelect = new System.Windows.Forms.RadioButton();
this.GistAndIssueSelect = new System.Windows.Forms.RadioButton();
this.NoUploadSelect = new System.Windows.Forms.RadioButton();
this.SubmitButton = new System.Windows.Forms.Button();
this.Url = new System.Windows.Forms.TextBox();
this.SubmitedMessage = new System.Windows.Forms.Label();
this.SubmitedTitleLabel = new System.Windows.Forms.Label();
this.LastErrorTitleLabel = new System.Windows.Forms.Label();
this.LastErrorBox = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// Title
// TitleLabel
//
this.Title.AutoSize = true;
this.Title.Enabled = false;
this.Title.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Title.Location = new System.Drawing.Point(9, 8);
this.Title.Name = "Title";
this.Title.Size = new System.Drawing.Size(110, 20);
this.Title.TabIndex = 0;
this.Title.Text = "We are sorry";
this.TitleLabel.AutoSize = true;
this.TitleLabel.Enabled = false;
this.TitleLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.TitleLabel.Location = new System.Drawing.Point(9, 8);
this.TitleLabel.Name = "TitleLabel";
this.TitleLabel.Size = new System.Drawing.Size(110, 20);
this.TitleLabel.TabIndex = 0;
this.TitleLabel.Text = "We are sorry";
//
// Message
// MessageText
//
this.Message.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.Message.Enabled = false;
this.Message.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Message.Location = new System.Drawing.Point(13, 31);
this.Message.Multiline = true;
this.Message.Name = "Message";
this.Message.ReadOnly = true;
this.Message.Size = new System.Drawing.Size(625, 63);
this.Message.TabIndex = 0;
this.Message.TabStop = false;
this.Message.Text = "that Vocaluxe run into an error and crashed.\r\nTo help us fix the problem please s" +
this.MessageText.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.MessageText.Enabled = false;
this.MessageText.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.MessageText.Location = new System.Drawing.Point(13, 31);
this.MessageText.Multiline = true;
this.MessageText.Name = "MessageText";
this.MessageText.ReadOnly = true;
this.MessageText.Size = new System.Drawing.Size(625, 63);
this.MessageText.TabIndex = 0;
this.MessageText.TabStop = false;
this.MessageText.Text = "that Vocaluxe run into an error and crashed.\r\nTo help us fix the problem please s" +
"end us a report.\r\nEdit the following log before submitting to remove possibly se" +
"nsitive information.";
//
// Log
// LogBox
//
this.Log.AcceptsReturn = true;
this.Log.AcceptsTab = true;
this.Log.Location = new System.Drawing.Point(13, 100);
this.Log.Multiline = true;
this.Log.Name = "Log";
this.Log.Size = new System.Drawing.Size(625, 189);
this.Log.TabIndex = 1;
this.LogBox.AcceptsReturn = true;
this.LogBox.AcceptsTab = true;
this.LogBox.Location = new System.Drawing.Point(13, 182);
this.LogBox.Multiline = true;
this.LogBox.Name = "LogBox";
this.LogBox.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.LogBox.Size = new System.Drawing.Size(625, 189);
this.LogBox.TabIndex = 1;
this.LogBox.WordWrap = false;
//
// GistOnly
// GistOnlySelect
//
this.GistOnly.AutoSize = true;
this.GistOnly.Checked = true;
this.GistOnly.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.GistOnly.Location = new System.Drawing.Point(12, 295);
this.GistOnly.Name = "GistOnly";
this.GistOnly.Size = new System.Drawing.Size(385, 24);
this.GistOnly.TabIndex = 2;
this.GistOnly.TabStop = true;
this.GistOnly.Text = "Upload and get a link to your report (publicly visible)";
this.GistOnly.UseVisualStyleBackColor = true;
this.GistOnlySelect.AutoSize = true;
this.GistOnlySelect.Checked = true;
this.GistOnlySelect.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.GistOnlySelect.Location = new System.Drawing.Point(12, 377);
this.GistOnlySelect.Name = "GistOnlySelect";
this.GistOnlySelect.Size = new System.Drawing.Size(385, 24);
this.GistOnlySelect.TabIndex = 2;
this.GistOnlySelect.TabStop = true;
this.GistOnlySelect.Text = "Upload and get a link to your report (publicly visible)";
this.GistOnlySelect.UseVisualStyleBackColor = true;
//
// GistAndIssue
// GistAndIssueSelect
//
this.GistAndIssue.AutoSize = true;
this.GistAndIssue.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.GistAndIssue.Location = new System.Drawing.Point(12, 325);
this.GistAndIssue.Name = "GistAndIssue";
this.GistAndIssue.Size = new System.Drawing.Size(519, 24);
this.GistAndIssue.TabIndex = 3;
this.GistAndIssue.TabStop = true;
this.GistAndIssue.Text = "Upload and open an issue (publicly visible + requires a github account)";
this.GistAndIssue.UseVisualStyleBackColor = true;
this.GistAndIssueSelect.AutoSize = true;
this.GistAndIssueSelect.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.GistAndIssueSelect.Location = new System.Drawing.Point(12, 407);
this.GistAndIssueSelect.Name = "GistAndIssueSelect";
this.GistAndIssueSelect.Size = new System.Drawing.Size(519, 24);
this.GistAndIssueSelect.TabIndex = 3;
this.GistAndIssueSelect.TabStop = true;
this.GistAndIssueSelect.Text = "Upload and open an issue (publicly visible + requires a github account)";
this.GistAndIssueSelect.UseVisualStyleBackColor = true;
//
// NoUpload
// NoUploadSelect
//
this.NoUpload.AutoSize = true;
this.NoUpload.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.NoUpload.Location = new System.Drawing.Point(12, 355);
this.NoUpload.Name = "NoUpload";
this.NoUpload.Size = new System.Drawing.Size(493, 24);
this.NoUpload.TabIndex = 4;
this.NoUpload.TabStop = true;
this.NoUpload.Text = "Don\'t upload anything (you can still copy the error message above)";
this.NoUpload.UseVisualStyleBackColor = true;
this.NoUpload.CheckedChanged += new System.EventHandler(this.NoUpload_CheckedChanged);
this.NoUploadSelect.AutoSize = true;
this.NoUploadSelect.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.NoUploadSelect.Location = new System.Drawing.Point(12, 437);
this.NoUploadSelect.Name = "NoUploadSelect";
this.NoUploadSelect.Size = new System.Drawing.Size(493, 24);
this.NoUploadSelect.TabIndex = 4;
this.NoUploadSelect.TabStop = true;
this.NoUploadSelect.Text = "Don\'t upload anything (you can still copy the error message above)";
this.NoUploadSelect.UseVisualStyleBackColor = true;
this.NoUploadSelect.CheckedChanged += new System.EventHandler(this.NoUpload_CheckedChanged);
//
// Submit
// SubmitButton
//
this.Submit.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Submit.Location = new System.Drawing.Point(537, 306);
this.Submit.Name = "Submit";
this.Submit.Size = new System.Drawing.Size(101, 73);
this.Submit.TabIndex = 5;
this.Submit.Text = "Submit";
this.Submit.UseVisualStyleBackColor = true;
this.Submit.Click += new System.EventHandler(this.Submit_Click);
this.SubmitButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.SubmitButton.Location = new System.Drawing.Point(537, 388);
this.SubmitButton.Name = "SubmitButton";
this.SubmitButton.Size = new System.Drawing.Size(101, 73);
this.SubmitButton.TabIndex = 5;
this.SubmitButton.Text = "Submit";
this.SubmitButton.UseVisualStyleBackColor = true;
this.SubmitButton.Click += new System.EventHandler(this.Submit_Click);
//
// Url
//
this.Url.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Url.Location = new System.Drawing.Point(12, 327);
this.Url.Location = new System.Drawing.Point(12, 409);
this.Url.Name = "Url";
this.Url.ReadOnly = true;
this.Url.Size = new System.Drawing.Size(519, 22);
@@ -137,32 +141,57 @@
this.Url.Text = "https://gist.github.com/lukeIam/cc81f7ef3545ef2baf0ca9a28ffe4bd8";
this.Url.Visible = false;
//
// SubmitedMessage
// SubmitedTitleLabel
//
this.SubmitedMessage.AutoSize = true;
this.SubmitedMessage.Enabled = false;
this.SubmitedMessage.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.SubmitedMessage.Location = new System.Drawing.Point(9, 299);
this.SubmitedMessage.Name = "SubmitedMessage";
this.SubmitedMessage.Size = new System.Drawing.Size(189, 20);
this.SubmitedMessage.TabIndex = 8;
this.SubmitedMessage.Text = "The link to your report:";
this.SubmitedMessage.Visible = false;
this.SubmitedTitleLabel.AutoSize = true;
this.SubmitedTitleLabel.Enabled = false;
this.SubmitedTitleLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.SubmitedTitleLabel.Location = new System.Drawing.Point(9, 381);
this.SubmitedTitleLabel.Name = "SubmitedTitleLabel";
this.SubmitedTitleLabel.Size = new System.Drawing.Size(189, 20);
this.SubmitedTitleLabel.TabIndex = 8;
this.SubmitedTitleLabel.Text = "The link to your report:";
this.SubmitedTitleLabel.Visible = false;
//
// LastErrorTitleLabel
//
this.LastErrorTitleLabel.AutoSize = true;
this.LastErrorTitleLabel.Enabled = false;
this.LastErrorTitleLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.LastErrorTitleLabel.Location = new System.Drawing.Point(9, 97);
this.LastErrorTitleLabel.Name = "LastErrorTitleLabel";
this.LastErrorTitleLabel.Size = new System.Drawing.Size(87, 20);
this.LastErrorTitleLabel.TabIndex = 9;
this.LastErrorTitleLabel.Text = "Last error";
//
// LastErrorBox
//
this.LastErrorBox.AcceptsReturn = true;
this.LastErrorBox.AcceptsTab = true;
this.LastErrorBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.LastErrorBox.Location = new System.Drawing.Point(12, 120);
this.LastErrorBox.Multiline = true;
this.LastErrorBox.Name = "LastErrorBox";
this.LastErrorBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.LastErrorBox.Size = new System.Drawing.Size(626, 38);
this.LastErrorBox.TabIndex = 10;
//
// CReporter
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(650, 387);
this.Controls.Add(this.SubmitedMessage);
this.ClientSize = new System.Drawing.Size(650, 467);
this.Controls.Add(this.LastErrorBox);
this.Controls.Add(this.LastErrorTitleLabel);
this.Controls.Add(this.SubmitedTitleLabel);
this.Controls.Add(this.Url);
this.Controls.Add(this.Submit);
this.Controls.Add(this.NoUpload);
this.Controls.Add(this.GistAndIssue);
this.Controls.Add(this.GistOnly);
this.Controls.Add(this.Log);
this.Controls.Add(this.Message);
this.Controls.Add(this.Title);
this.Controls.Add(this.SubmitButton);
this.Controls.Add(this.NoUploadSelect);
this.Controls.Add(this.GistAndIssueSelect);
this.Controls.Add(this.GistOnlySelect);
this.Controls.Add(this.LogBox);
this.Controls.Add(this.MessageText);
this.Controls.Add(this.TitleLabel);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "CReporter";
this.Text = "Vocaluxe Issue Reporter";
@@ -173,14 +202,16 @@
#endregion
private System.Windows.Forms.Label Title;
private System.Windows.Forms.TextBox Message;
private System.Windows.Forms.TextBox Log;
private System.Windows.Forms.RadioButton GistOnly;
private System.Windows.Forms.RadioButton GistAndIssue;
private System.Windows.Forms.RadioButton NoUpload;
private System.Windows.Forms.Button Submit;
private System.Windows.Forms.Label TitleLabel;
private System.Windows.Forms.TextBox MessageText;
private System.Windows.Forms.TextBox LogBox;
private System.Windows.Forms.RadioButton GistOnlySelect;
private System.Windows.Forms.RadioButton GistAndIssueSelect;
private System.Windows.Forms.RadioButton NoUploadSelect;
private System.Windows.Forms.Button SubmitButton;
private System.Windows.Forms.TextBox Url;
private System.Windows.Forms.Label SubmitedMessage;
private System.Windows.Forms.Label SubmitedTitleLabel;
private System.Windows.Forms.Label LastErrorTitleLabel;
private System.Windows.Forms.TextBox LastErrorBox;
}
}
+73 -47
View File
@@ -20,10 +20,12 @@ namespace Vocaluxe.Reporting
private string _GistOnlyText = "Upload and get a link to your report (publicly visible)";
private string _SubmitStep0Text = "Submit";
private string _SubmitStep1Text = "Uploading";
private string _SubmitStep2CrashText = "Exit";
private string _SubmitStep2NoCrashText = "Continue";
private string _SubmitStep2ExitText = "Exit";
private string _SubmitStep2ContinueText = "Continue";
private string _SubmitedMessageText = "The link to your report:";
private string _LogUploadErrorText = "Error uploading the log.";
private string _LastErrorTitleText = "Last error";
private string _LastErrorNA = "Not available";
private string _IssueTemplate = "Describe your issue here.\n\n### Steps to reproduce\nTell us how to reproduce this issue.\n\n### Vocaluxe version and logfile\n{0}\n{1}";
@@ -34,7 +36,7 @@ namespace Vocaluxe.Reporting
private readonly bool _ShowContinue;
private static readonly HttpClient _Client = new HttpClient();
private static readonly Regex _GetGistUrlRegex = new Regex("\"raw_url\": *\"([^\"]+)\"");
private static readonly Regex _GetGistUrlRegex = new Regex("\"html_url\": *\"([^\"]+)\"");
public static ShowReporterDelegate ShowReporterFunc
@@ -42,9 +44,17 @@ namespace Vocaluxe.Reporting
get { return _ShowReporter; }
}
private static void _ShowReporter(bool crash, bool showContinue, string vocaluxeVersionTag, string log)
/// <summary>
/// Shows a new instance of the log file reporter.
/// </summary>
/// <param name="crash">True if we are submitting a crash, false otherwise (e.g. error).</param>
/// <param name="showContinue">True if the reporter show show a continue message, false if it should show an exit message.</param>
/// <param name="vocaluxeVersionTag">The full version tag of this instance (like it is diplayed in the main menu).</param>
/// <param name="log">The log to submit.</param>
/// <param name="lastError">The last error message.</param>
private static void _ShowReporter(bool crash, bool showContinue, string vocaluxeVersionTag, string log, string lastError)
{
using (var reporter = new CReporter(crash, showContinue, vocaluxeVersionTag, log))
using (var reporter = new CReporter(crash, showContinue, vocaluxeVersionTag, log, lastError))
{
reporter.ShowDialog();
}
@@ -57,33 +67,37 @@ namespace Vocaluxe.Reporting
/// <param name="showContinue">True if the reporter show show a continue message, false if it should show an exit message.</param>
/// <param name="vocaluxeVersionTag">The full version tag of this instance (like it is diplayed in the main menu).</param>
/// <param name="log">The log to submit.</param>
public CReporter(bool crash, bool showContinue, string vocaluxeVersionTag, string log)
/// <param name="lastError">The last error message.</param>
public CReporter(bool crash, bool showContinue, string vocaluxeVersionTag, string log, string lastError)
{
InitializeComponent();
_Crash = crash;
_ShowContinue = showContinue;
_VocaluxeVersionTag = vocaluxeVersionTag;
_Init(log);
_Init(log, lastError);
}
/// <summary>
/// Initilaize the gui.
/// </summary>
/// <param name="log">The Log to submit.</param>
private void _Init(string log)
/// <param name="lastError">The last error message.</param>
private void _Init(string log, string lastError)
{
_Client.DefaultRequestHeaders.Add("accept", "application/json");
_Client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)");
this.Title.Text = _TitleText;
this.Message.Text = _Crash ? _MessageCrashText : _MessageNoCrashText;
this.NoUpload.Text = _NoUploadText;
this.GistAndIssue.Text = _GistAndIssueText;
this.GistOnly.Text = _GistOnlyText;
this.Submit.Text = _SubmitStep0Text;
this.SubmitedMessage.Text = _SubmitedMessageText;
this.Log.Text = log.Replace("\n","\r\n");
this.Log.SelectionStart = 0;
this.TitleLabel.Text = _TitleText;
this.MessageText.Text = _Crash ? _MessageCrashText : _MessageNoCrashText;
this.NoUploadSelect.Text = _NoUploadText;
this.GistAndIssueSelect.Text = _GistAndIssueText;
this.GistOnlySelect.Text = _GistOnlyText;
this.SubmitButton.Text = _SubmitStep0Text;
this.SubmitedTitleLabel.Text = _SubmitedMessageText;
this.LastErrorTitleLabel.Text = _LastErrorTitleText;
this.LastErrorBox.Text = string.IsNullOrWhiteSpace(lastError) ? _LastErrorNA : lastError;
this.LogBox.Text = log.Replace("\n","\r\n");
this.LogBox.SelectionStart = 0;
}
private async void Submit_Click(object sender, EventArgs e)
@@ -91,38 +105,39 @@ namespace Vocaluxe.Reporting
switch (_Step)
{
case 0:
if (this.NoUpload.Checked)
if (this.NoUploadSelect.Checked)
{
this.Close();
}
else
{
_Step = 1;
this.Submit.Text = _SubmitStep1Text;
this.Submit.Enabled = false;
this.NoUpload.Visible = false;
this.GistAndIssue.Visible = false;
this.GistOnly.Visible = false;
this.Log.Enabled = false;
this.SubmitButton.Text = _SubmitStep1Text;
this.SubmitButton.Enabled = false;
this.NoUploadSelect.Visible = false;
this.GistAndIssueSelect.Visible = false;
this.GistOnlySelect.Visible = false;
this.LogBox.Enabled = false;
this.LastErrorBox.Enabled = false;
string url;
if (this.GistOnly.Checked)
if (this.GistOnlySelect.Checked)
{
await Task.Run(() => _StartGistUpload(this.Log.Text));
await Task.Run(() => _StartGistUpload(this.LogBox.Text, this.LastErrorBox.Text));
}
else if (this.GistAndIssue.Checked)
else if (this.GistAndIssueSelect.Checked)
{
await Task.Run(() => _StartIssueUpload(this.Log.Text));
await Task.Run(() => _StartIssueUpload(this.LogBox.Text, this.LastErrorBox.Text));
}
else
{
_Step = 0;
this.Submit.Text = _SubmitStep0Text;
this.Submit.Enabled = true;
this.NoUpload.Visible = true;
this.GistAndIssue.Visible = true;
this.GistOnly.Visible = true;
this.Log.Enabled = true;
this.SubmitButton.Text = _SubmitStep0Text;
this.SubmitButton.Enabled = true;
this.NoUploadSelect.Visible = true;
this.GistAndIssueSelect.Visible = true;
this.GistOnlySelect.Visible = true;
this.LogBox.Enabled = true;
this.LastErrorBox.Enabled = false;
}
}
@@ -136,7 +151,7 @@ namespace Vocaluxe.Reporting
private void NoUpload_CheckedChanged(object sender, EventArgs e)
{
this.Submit.Text = this.NoUpload.Checked ? (_ShowContinue ? _SubmitStep2CrashText : _SubmitStep2NoCrashText) : _SubmitStep0Text;
this.SubmitButton.Text = this.NoUploadSelect.Checked ? (_ShowContinue ? _SubmitStep2ContinueText : _SubmitStep2ExitText) : _SubmitStep0Text;
}
/// <summary>
@@ -152,12 +167,13 @@ namespace Vocaluxe.Reporting
else
{
_Step = 2;
this.Submit.Text = _ShowContinue ? _SubmitStep2CrashText : _SubmitStep2NoCrashText;
this.Submit.Enabled = true;
this.SubmitedMessage.Visible = true;
this.SubmitButton.Text = _ShowContinue ? _SubmitStep2ContinueText : _SubmitStep2ExitText;
this.SubmitButton.Enabled = true;
this.SubmitedTitleLabel.Visible = true;
this.Url.Text = string.IsNullOrWhiteSpace(url)?_LogUploadErrorText:url;
this.Url.Visible = true;
this.Url.SelectAll();
this.Url.Focus();
}
}
@@ -165,20 +181,22 @@ namespace Vocaluxe.Reporting
/// Upload a log to gist and updates the gui.
/// </summary>
/// <param name="log">The log to upload.</param>
private async void _StartGistUpload(string log)
/// <param name="lastError">The error message displayed to the user (if available).</param>
private async void _StartGistUpload(string log, string lastError= "not available")
{
// Upload log to github gist and show the link
_UploadFinished(await _UploadLogToGist(log));
_UploadFinished(await _UploadLogToGist(log, lastError));
}
/// <summary>
/// Upload a log to gist, opens an issue template on github and updates the gui.
/// </summary>
/// <param name="log">The log to upload.</param>
private async void _StartIssueUpload(string log)
/// <param name="lastError">The error message displayed to the user (if available).</param>
private async void _StartIssueUpload(string log, string lastError = "not available")
{
// Upload log to github gist
string gistUrl = await _UploadLogToGist(log);
string gistUrl = await _UploadLogToGist(log, lastError);
// Build issue body
string template = string.Format(_IssueTemplate, _VocaluxeVersionTag, gistUrl);
@@ -186,19 +204,20 @@ namespace Vocaluxe.Reporting
// Build url for github issue template
string issueUrl = $"https://github.com/Vocaluxe/Vocaluxe/issues/new?title=Give%20me%20a%20meaningful%20title&body={ Uri.EscapeDataString(template) }";
// Start the browser with the issue template url
System.Diagnostics.Process.Start(issueUrl);
// Show the link
_UploadFinished(issueUrl);
// Start the browser with the issue template url
System.Diagnostics.Process.Start(issueUrl);
}
/// <summary>
/// Uploads a log to a new anonymous gist.
/// </summary>
/// <param name="log">The log that should be uploaded.</param>
/// <param name="lastError">The error message displayed to the user (if available).</param>
/// <returns>The link to the uploaded file.</returns>
private async Task<string> _UploadLogToGist(string log)
private async Task<string> _UploadLogToGist(string log, string lastError= "not available")
{
string json = JsonConvert.SerializeObject(new CGistCreateData()
{
@@ -212,6 +231,13 @@ namespace Vocaluxe.Reporting
{
Content = log
}
},
{
"LastError.txt",
new CGistFileData()
{
Content = lastError
}
}
}
});
+28 -3
View File
@@ -2,6 +2,7 @@
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using Serilog;
using VocaluxeLib.Log.Enricher;
using VocaluxeLib.Log.Rolling;
@@ -55,7 +56,7 @@ namespace VocaluxeLib.Log
if (_CurrentVersion == versionTag && File.Exists(mainLogFilePath))
{
string logContent = File.ReadAllText(mainLogFilePath, Encoding.UTF8);
_ShowReporterFunc(crash:true, allowContinue:true, vocaluxeVersionTag:versionTag, log:logContent);
_ShowReporterFunc(crash:true, showContinue:true, vocaluxeVersionTag:versionTag, log:logContent, lastError:"Vocaluxe crashed while the last execution.");
}
}
@@ -108,12 +109,36 @@ namespace VocaluxeLib.Log
}
private static void _ShowLogAssistent(string messageTemplate, object[] propertyValues, string callerMethodeName = "", string callerFilePath = "", int callerLineNumer = -1)
public static void ShowLogAssistent(string messageTemplate, object[] propertyValues, bool crash = false, bool showContinue = true)
{
// Flush the _MainLogStringWriter to get the latest entries to _MainLogStringBuilder
_MainLogStringWriter.Flush();
// Show the Reporter
_ShowReporterFunc(crash: true, allowContinue: true, vocaluxeVersionTag: _CurrentVersion, log: _MainLogStringBuilder.ToString());
_ShowReporterFunc(crash: crash, showContinue: showContinue, vocaluxeVersionTag: _CurrentVersion, log: _MainLogStringBuilder.ToString(), lastError: _FormatMessageTemplate(messageTemplate, propertyValues));
}
/// <summary>
/// Simple version of inserting values into a message template (have not the same result as the original)
/// </summary>
/// <param name="template">The template to fill in the data.</param>
/// <param name="propertyValues">The values to fill in.</param>
/// <returns>The filled template.</returns>
private static string _FormatMessageTemplate(string template, object[] propertyValues)
{
if (propertyValues == null)
{
return template;
}
Regex theRegex = new Regex(@"{[^}]+}");
int i = 0;
return theRegex.Replace(template, delegate(Match match)
{
if (propertyValues.Length >= i)
return match.Value;
return propertyValues[i++].ToString();
});
}
}
+24 -24
View File
@@ -33,7 +33,7 @@ namespace VocaluxeLib.Log
_MainLog.Verbose(messageTemplate);
}
if(show)
_ShowLogAssistent(messageTemplate, null, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, null);
}
/// <summary>
@@ -53,7 +53,7 @@ namespace VocaluxeLib.Log
_MainLog.Verbose(messageTemplate, propertyValues);
}
if(show)
_ShowLogAssistent(messageTemplate, propertyValues, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, propertyValues);
}
/// <summary>
@@ -73,7 +73,7 @@ namespace VocaluxeLib.Log
_MainLog.Verbose( exception, messageTemplate);
}
if(show)
_ShowLogAssistent(messageTemplate, null, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, null);
}
/// <summary>
@@ -94,7 +94,7 @@ namespace VocaluxeLib.Log
_MainLog.Verbose(exception, messageTemplate, propertyValues);
}
if(show)
_ShowLogAssistent(messageTemplate, propertyValues, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, propertyValues);
}
#endregion
@@ -117,7 +117,7 @@ namespace VocaluxeLib.Log
_MainLog.Debug(messageTemplate);
}
if(show)
_ShowLogAssistent(messageTemplate, null, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, null);
}
/// <summary>
@@ -137,7 +137,7 @@ namespace VocaluxeLib.Log
_MainLog.Debug(messageTemplate, propertyValues);
}
if(show)
_ShowLogAssistent(messageTemplate, propertyValues, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, propertyValues);
}
/// <summary>
@@ -157,7 +157,7 @@ namespace VocaluxeLib.Log
_MainLog.Debug( exception, messageTemplate);
}
if(show)
_ShowLogAssistent(messageTemplate, null, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, null);
}
/// <summary>
@@ -178,7 +178,7 @@ namespace VocaluxeLib.Log
_MainLog.Debug(exception, messageTemplate, propertyValues);
}
if(show)
_ShowLogAssistent(messageTemplate, propertyValues, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, propertyValues);
}
#endregion
@@ -201,7 +201,7 @@ namespace VocaluxeLib.Log
_MainLog.Information(messageTemplate);
}
if(show)
_ShowLogAssistent(messageTemplate, null, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, null);
}
/// <summary>
@@ -221,7 +221,7 @@ namespace VocaluxeLib.Log
_MainLog.Information(messageTemplate, propertyValues);
}
if(show)
_ShowLogAssistent(messageTemplate, propertyValues, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, propertyValues);
}
/// <summary>
@@ -241,7 +241,7 @@ namespace VocaluxeLib.Log
_MainLog.Information( exception, messageTemplate);
}
if(show)
_ShowLogAssistent(messageTemplate, null, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, null);
}
/// <summary>
@@ -262,7 +262,7 @@ namespace VocaluxeLib.Log
_MainLog.Information(exception, messageTemplate, propertyValues);
}
if(show)
_ShowLogAssistent(messageTemplate, propertyValues, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, propertyValues);
}
#endregion
@@ -285,7 +285,7 @@ namespace VocaluxeLib.Log
_MainLog.Warning(messageTemplate);
}
if(show)
_ShowLogAssistent(messageTemplate, null, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, null);
}
/// <summary>
@@ -305,7 +305,7 @@ namespace VocaluxeLib.Log
_MainLog.Warning(messageTemplate, propertyValues);
}
if(show)
_ShowLogAssistent(messageTemplate, propertyValues, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, propertyValues);
}
/// <summary>
@@ -325,7 +325,7 @@ namespace VocaluxeLib.Log
_MainLog.Warning( exception, messageTemplate);
}
if(show)
_ShowLogAssistent(messageTemplate, null, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, null);
}
/// <summary>
@@ -346,7 +346,7 @@ namespace VocaluxeLib.Log
_MainLog.Warning(exception, messageTemplate, propertyValues);
}
if(show)
_ShowLogAssistent(messageTemplate, propertyValues, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, propertyValues);
}
#endregion
@@ -369,7 +369,7 @@ namespace VocaluxeLib.Log
_MainLog.Error(messageTemplate);
}
if(show)
_ShowLogAssistent(messageTemplate, null, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, null);
}
/// <summary>
@@ -389,7 +389,7 @@ namespace VocaluxeLib.Log
_MainLog.Error(messageTemplate, propertyValues);
}
if(show)
_ShowLogAssistent(messageTemplate, propertyValues, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, propertyValues);
}
/// <summary>
@@ -409,7 +409,7 @@ namespace VocaluxeLib.Log
_MainLog.Error( exception, messageTemplate);
}
if(show)
_ShowLogAssistent(messageTemplate, null, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, null);
}
/// <summary>
@@ -430,7 +430,7 @@ namespace VocaluxeLib.Log
_MainLog.Error(exception, messageTemplate, propertyValues);
}
if(show)
_ShowLogAssistent(messageTemplate, propertyValues, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, propertyValues);
}
#endregion
@@ -453,7 +453,7 @@ namespace VocaluxeLib.Log
_MainLog.Fatal(messageTemplate);
}
if(show)
_ShowLogAssistent(messageTemplate, null, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, null, true, false);
// Close logs and exit
Close();
@@ -477,7 +477,7 @@ namespace VocaluxeLib.Log
_MainLog.Fatal(messageTemplate, propertyValues);
}
if(show)
_ShowLogAssistent(messageTemplate, propertyValues, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, propertyValues, true, false);
// Close logs and exit
Close();
@@ -501,7 +501,7 @@ namespace VocaluxeLib.Log
_MainLog.Fatal( exception, messageTemplate);
}
if(show)
_ShowLogAssistent(messageTemplate, null, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, null, true, false);
// Close logs and exit
Close();
@@ -526,7 +526,7 @@ namespace VocaluxeLib.Log
_MainLog.Fatal(exception, messageTemplate, propertyValues);
}
if(show)
_ShowLogAssistent(messageTemplate, propertyValues, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, propertyValues, true, false);
// Close logs and exit
Close();
+4 -4
View File
@@ -52,7 +52,7 @@ namespace VocaluxeLib.Log
}
<# if(Log == "Main") { #>
if(show)
_ShowLogAssistent(messageTemplate, null, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, null<#= LogLevel == "Fatal"?", true, false":"" #>);
<# } #>
<# if(LogLevel == "Fatal") { #>
@@ -82,7 +82,7 @@ namespace VocaluxeLib.Log
}
<# if(Log == "Main") { #>
if(show)
_ShowLogAssistent(messageTemplate, propertyValues, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, propertyValues<#= LogLevel == "Fatal"?", true, false":"" #>);
<# } #>
<# if(LogLevel == "Fatal") { #>
@@ -112,7 +112,7 @@ namespace VocaluxeLib.Log
}
<# if(Log == "Main") { #>
if(show)
_ShowLogAssistent(messageTemplate, null, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, null<#= LogLevel == "Fatal"?", true, false":"" #>);
<# } #>
<# if(LogLevel == "Fatal") { #>
@@ -143,7 +143,7 @@ namespace VocaluxeLib.Log
}
<# if(Log == "Main") { #>
if(show)
_ShowLogAssistent(messageTemplate, propertyValues, callerMethodeName, callerFilePath, callerLineNumer);
ShowLogAssistent(messageTemplate, propertyValues<#= LogLevel == "Fatal"?", true, false":"" #>);
<# } #>
<# if(LogLevel == "Fatal") { #>
+9 -1
View File
@@ -1,5 +1,13 @@
namespace VocaluxeLib.Log
{
public delegate void ShowReporterDelegate(bool crash, bool allowContinue, string vocaluxeVersionTag, string log);
/// <summary>
/// Shows a new instance of the log file reporter.
/// </summary>
/// <param name="crash">True if we are submitting a crash, false otherwise (e.g. error).</param>
/// <param name="showContinue">True if the reporter show show a continue message, false if it should show an exit message.</param>
/// <param name="vocaluxeVersionTag">The full version tag of this instance (like it is diplayed in the main menu).</param>
/// <param name="log">The log to submit.</param>
/// <param name="lastError">The last error message.</param>
public delegate void ShowReporterDelegate(bool crash, bool showContinue, string vocaluxeVersionTag, string log, string lastError);
}