72 lines
2.3 KiB
C#
72 lines
2.3 KiB
C#
using log4net.Appender;
|
|
using log4net.Core;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using WeifenLuo.WinFormsUI.Docking;
|
|
|
|
namespace Voile.DockContents
|
|
{
|
|
public partial class DockLog : DockContent, IAppender
|
|
{
|
|
private static readonly log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
|
public DockLog()
|
|
{
|
|
InitializeComponent();
|
|
|
|
richTextBox1.AllowDrop = true;
|
|
richTextBox1.DragEnter += RichTextBox1_DragEnter;
|
|
richTextBox1.DragDrop += RichTextBox1_DragDrop;
|
|
}
|
|
|
|
public void Logger(string s)
|
|
{
|
|
richTextBox1.SuspendLayout();
|
|
richTextBox1.AppendText(s + Environment.NewLine);
|
|
richTextBox1.SelectionStart = richTextBox1.Text.Length;
|
|
richTextBox1.ScrollToCaret();
|
|
richTextBox1.ResumeLayout();
|
|
}
|
|
|
|
private void RichTextBox1_DragDrop(object? sender, DragEventArgs e)
|
|
{
|
|
}
|
|
|
|
private void RichTextBox1_DragEnter(object? sender, DragEventArgs e)
|
|
{
|
|
}
|
|
|
|
bool wasInitalized;
|
|
public void InitalizeLogging()
|
|
{
|
|
if (wasInitalized)
|
|
throw new Exception("already initalized");
|
|
|
|
var hierarchy = (log4net.Repository.Hierarchy.Hierarchy)log4net.LogManager.GetRepository();
|
|
hierarchy.Root.AddAppender(this);
|
|
hierarchy.Root.Level = log4net.Core.Level.All;
|
|
log4net.Config.BasicConfigurator.Configure(hierarchy);
|
|
wasInitalized = true;
|
|
}
|
|
|
|
private log4net.Layout.PatternLayout logLayout;
|
|
public void DoAppend(LoggingEvent loggingEvent)
|
|
{
|
|
if (logLayout == null)
|
|
{
|
|
logLayout = new log4net.Layout.PatternLayout();
|
|
logLayout.ConversionPattern = "%date %level %logger - %message";
|
|
logLayout.ActivateOptions();
|
|
}
|
|
string v = logLayout.Format(loggingEvent);
|
|
Logger(v);
|
|
}
|
|
}
|
|
}
|