mirror of
https://github.com/lidarr/lidarr.git
synced 2025-07-30 11:48:26 -07:00
pretty...
This commit is contained in:
parent
beaf0cf939
commit
afafc6b032
285 changed files with 32688 additions and 784 deletions
137
CassiniDev/Views/LogView.cs
Normal file
137
CassiniDev/Views/LogView.cs
Normal file
|
@ -0,0 +1,137 @@
|
|||
// **********************************************************************************
|
||||
// CassiniDev - http://cassinidev.codeplex.com
|
||||
//
|
||||
// Copyright (c) Sky Sanders. All rights reserved.
|
||||
//
|
||||
// This source code is subject to terms and conditions of the Microsoft Public
|
||||
// License (Ms-PL). A copy of the license can be found in the license.htm file
|
||||
// included in this distribution.
|
||||
//
|
||||
// You must not remove this notice, or any other, from this software.
|
||||
//
|
||||
// **********************************************************************************
|
||||
|
||||
#region
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Windows.Forms;
|
||||
|
||||
#endregion
|
||||
|
||||
namespace CassiniDev.ServerLog
|
||||
{
|
||||
/// <summary>
|
||||
/// If log can persist, then only stack values in the list and tag the items with the RowId for querying the db for heavy values.
|
||||
/// If not, tag the item with the loginfo instance. Memory usage will be much greater but is better than nothing.
|
||||
/// </summary>
|
||||
public partial class LogView : Form
|
||||
{
|
||||
|
||||
|
||||
|
||||
private Server _server;
|
||||
|
||||
public LogView(Server server)
|
||||
{
|
||||
InitializeComponent();
|
||||
_server = server;
|
||||
_server.RequestComplete += RequestComplete;
|
||||
|
||||
|
||||
InitializeList();
|
||||
|
||||
base.Text = SR.GetString(SR.WebdevLogViewerNameWithPort, _server.Port);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Not sure if these qualify for disposable
|
||||
/// </summary>
|
||||
/// <param name="e"></param>
|
||||
protected override void OnClosing(CancelEventArgs e)
|
||||
{
|
||||
_server.RequestComplete -= RequestComplete;
|
||||
_server = null;
|
||||
|
||||
}
|
||||
|
||||
private void AddLogRows(IEnumerable<LogInfo> items)
|
||||
{
|
||||
listView1.SuspendLayout();
|
||||
|
||||
foreach (LogInfo item in items)
|
||||
{
|
||||
ListViewItem a = new ListViewItem(new[]
|
||||
{
|
||||
item.RowType == 0 ? "" : item.RowType == 1 ? "Request" : "Response",
|
||||
item.Created.ToString(),
|
||||
item.StatusCode.ToString(),
|
||||
item.Url,
|
||||
item.PathTranslated,
|
||||
item.Identity
|
||||
})
|
||||
{
|
||||
Tag = item
|
||||
};
|
||||
listView1.Items.Add(a);
|
||||
}
|
||||
|
||||
if (listView1.Items.Count > 0 && scrollLogToolStripMenuItem.Checked)
|
||||
{
|
||||
int lastRow = listView1.Items.Count - 1;
|
||||
listView1.EnsureVisible(lastRow);
|
||||
}
|
||||
listView1.ResumeLayout();
|
||||
}
|
||||
|
||||
private void clearToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
InitializeList();
|
||||
}
|
||||
|
||||
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
Close();
|
||||
}
|
||||
|
||||
private LogInfo GetSelectedLogItem()
|
||||
{
|
||||
object tag = listView1.Items[listView1.SelectedIndices[0]].Tag;
|
||||
|
||||
LogInfo returnValue = (LogInfo)tag;
|
||||
|
||||
return returnValue;
|
||||
}
|
||||
|
||||
private void InitializeList()
|
||||
{
|
||||
listView1.SuspendLayout();
|
||||
listView1.Items.Clear();
|
||||
listView1.ResumeLayout();
|
||||
}
|
||||
|
||||
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (listView1.SelectedIndices.Count > 0)
|
||||
{
|
||||
LogInfo log = GetSelectedLogItem();
|
||||
exceptionRichTextBox.Text = log.Exception;
|
||||
headersRichTextBox.Text = log.Headers;
|
||||
bodyBodyView.Value = log.Body;
|
||||
}
|
||||
else
|
||||
{
|
||||
exceptionRichTextBox.Text = "";
|
||||
headersRichTextBox.Text = "";
|
||||
bodyBodyView.Value = null;
|
||||
}
|
||||
}
|
||||
|
||||
private void RequestComplete(object sender, RequestEventArgs e)
|
||||
{
|
||||
Invoke(new MethodInvoker(() => AddLogRows(new[] { e.RequestLog, e.ResponseLog })));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue