mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-12-26 10:44:50 +03:00
handle year in name when searching
This commit is contained in:
88
MediaBrowser.ServerApplication/Logging/LogForm.cs
Normal file
88
MediaBrowser.ServerApplication/Logging/LogForm.cs
Normal file
@@ -0,0 +1,88 @@
|
||||
using MediaBrowser.Common.Implementations.Logging;
|
||||
using MediaBrowser.Model.Logging;
|
||||
using NLog.Targets;
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace MediaBrowser.ServerApplication.Logging
|
||||
{
|
||||
public partial class LogForm : Form
|
||||
{
|
||||
private readonly TaskScheduler _uiThread;
|
||||
private readonly ILogManager _logManager;
|
||||
|
||||
public LogForm(ILogManager logManager)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
_logManager = logManager;
|
||||
_uiThread = TaskScheduler.FromCurrentSynchronizationContext();
|
||||
}
|
||||
|
||||
protected override void OnLoad(EventArgs e)
|
||||
{
|
||||
base.OnLoad(e);
|
||||
|
||||
((NlogManager)_logManager).RemoveTarget("LogWindowTraceTarget");
|
||||
|
||||
((NlogManager)_logManager).AddLogTarget(new TraceTarget
|
||||
{
|
||||
Layout = "${longdate}, ${level}, ${logger}, ${message}",
|
||||
Name = "LogWindowTraceTarget"
|
||||
|
||||
}, LogSeverity.Debug);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Logs the message.
|
||||
/// </summary>
|
||||
/// <param name="msg">The MSG.</param>
|
||||
public async void LogMessage(string msg)
|
||||
{
|
||||
await Task.Factory.StartNew(() =>
|
||||
{
|
||||
if (listBox1.Items.Count > 10000)
|
||||
{
|
||||
//I think the quickest and safest thing to do here is just clear it out
|
||||
listBox1.Items.Clear();
|
||||
}
|
||||
|
||||
foreach (var line in msg.Split(new[] { '\n' }, StringSplitOptions.RemoveEmptyEntries))
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(line))
|
||||
{
|
||||
listBox1.Items.Insert(0, line);
|
||||
}
|
||||
}
|
||||
|
||||
}, CancellationToken.None, TaskCreationOptions.None, _uiThread);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The log layout
|
||||
/// </summary>
|
||||
/// <value>The log layout.</value>
|
||||
public string LogLayout
|
||||
{
|
||||
get { return "${longdate}, ${level}, ${logger}, ${message}"; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Shuts down.
|
||||
/// </summary>
|
||||
public async void ShutDown()
|
||||
{
|
||||
await Task.Factory.StartNew(Close, CancellationToken.None, TaskCreationOptions.None, _uiThread);
|
||||
}
|
||||
|
||||
protected override void OnClosing(CancelEventArgs e)
|
||||
{
|
||||
base.OnClosing(e);
|
||||
|
||||
((NlogManager)_logManager).RemoveTarget("LogWindowTraceTarget");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user