mirror of
				https://github.com/jellyfin/jellyfin.git
				synced 2025-11-03 19:17:24 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			76 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System.Diagnostics;
 | 
						|
 | 
						|
namespace MediaBrowser.ServerApplication.Logging
 | 
						|
{
 | 
						|
    /// <summary>
 | 
						|
    /// Class WindowTraceListener
 | 
						|
    /// </summary>
 | 
						|
    public class WindowTraceListener : DefaultTraceListener
 | 
						|
    {
 | 
						|
        /// <summary>
 | 
						|
        /// The _window
 | 
						|
        /// </summary>
 | 
						|
        private readonly LogWindow _window;
 | 
						|
        /// <summary>
 | 
						|
        /// Initializes a new instance of the <see cref="WindowTraceListener" /> class.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="window">The window.</param>
 | 
						|
        public WindowTraceListener(LogWindow window)
 | 
						|
        {
 | 
						|
            _window = window;
 | 
						|
            _window.Show();
 | 
						|
            Name = "MBLogWindow";
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Writes the value of the object's <see cref="M:System.Object.ToString" /> method to the listener you create when you implement the <see cref="T:System.Diagnostics.TraceListener" /> class.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="o">An <see cref="T:System.Object" /> whose fully qualified class name you want to write.</param>
 | 
						|
        public override void Write(object o)
 | 
						|
        {
 | 
						|
            var str = o as string;
 | 
						|
            if (str != null)
 | 
						|
                Write(str);
 | 
						|
            else
 | 
						|
                base.Write(o);
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Writes the output to the OutputDebugString function and to the <see cref="M:System.Diagnostics.Debugger.Log(System.Int32,System.String,System.String)" /> method.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="message">The message to write to OutputDebugString and <see cref="M:System.Diagnostics.Debugger.Log(System.Int32,System.String,System.String)" />.</param>
 | 
						|
        /// <PermissionSet>
 | 
						|
        ///   <IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
 | 
						|
        ///   <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="ControlEvidence" />
 | 
						|
        ///   </PermissionSet>
 | 
						|
        public override void Write(string message)
 | 
						|
        {
 | 
						|
            _window.LogMessage(message);
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Writes the output to the OutputDebugString function and to the <see cref="M:System.Diagnostics.Debugger.Log(System.Int32,System.String,System.String)" /> method, followed by a carriage return and line feed (\r\n).
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="message">The message to write to OutputDebugString and <see cref="M:System.Diagnostics.Debugger.Log(System.Int32,System.String,System.String)" />.</param>
 | 
						|
        /// <PermissionSet>
 | 
						|
        ///   <IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
 | 
						|
        ///   <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="ControlEvidence" />
 | 
						|
        ///   </PermissionSet>
 | 
						|
        public override void WriteLine(string message)
 | 
						|
        {
 | 
						|
            Write(message+"\n");
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Releases the unmanaged resources used by the <see cref="T:System.Diagnostics.TraceListener" /> and optionally releases the managed resources.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
 | 
						|
        protected override void Dispose(bool disposing)
 | 
						|
        {
 | 
						|
            if (_window != null)
 | 
						|
                _window.ShutDown();
 | 
						|
            base.Dispose(disposing);
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |