using NLog; using NLog.Config; using OTS.WinFormsUI.Docking; using System; using System.Linq; namespace OTSIncAReportApp { public partial class OutputNlog : DockContent { protected static NLog.Logger loger; public OutputNlog() { InitializeComponent(); } private void OTSMeasureOutputNlog_Load(object sender, EventArgs e) { combox_NlogType.Items.Add("Trace"); combox_NlogType.Items.Add("Debug"); combox_NlogType.Items.Add("Info"); combox_NlogType.Items.Add("Warn"); combox_NlogType.Items.Add("Error"); combox_NlogType.Items.Add("Fatal"); combox_NlogType.SelectedIndex = 0; loger = NLog.LogManager.GetCurrentClassLogger(); } private void button_test_Click(object sender, EventArgs e) { loger = NLog.LogManager.GetCurrentClassLogger(); loger.Trace("Trace"); loger.Debug("Debug"); loger.Info("Info"); loger.Warn("Warn"); loger.Error("Error"); loger.Fatal("Fatal THIS IS A LOG WHICH USED TO TEST THE LOG LENTH FIT TO THE FORM!"); } private void button_Clear_Click(object sender, EventArgs e) { richTextBox_Nlog.Clear(); } private void combox_NlogType_SelectedIndexChanged(object sender, EventArgs e) { if (null == combox_NlogType.SelectedItem) return; String str = combox_NlogType.SelectedItem.ToString(); // 获取日志级别. LogLevel lv = LogLevel.Info; // 若选择的值无效, 则当作 Info级. lv = LogLevel.FromString(str); LoggingRule lr = LogManager.Configuration.LoggingRules.FirstOrDefault( r => r.Targets.Any( t => "control" == t.Name ) ); if (lr != null) { lr.SetLoggingLevels(lv, LogLevel.Fatal); LogManager.ReconfigExistingLoggers(); // 使配置生效. } } private void button_stop_Click(object sender, EventArgs e) { if (button_stop.Text == "Stop") { LoggingRule lr = LogManager.Configuration.LoggingRules.FirstOrDefault( r => r.Targets.Any( t => "control" == t.Name ) ); LogManager.Configuration.LoggingRules.Remove(lr); LogManager.ReconfigExistingLoggers(); button_stop.Text = "Start"; } else { if (null == combox_NlogType.SelectedItem) return; String str = combox_NlogType.SelectedItem.ToString(); LogManager.Configuration.AddRule(LogLevel.FromString(str), LogLevel.Fatal, "control"); LogManager.ReconfigExistingLoggers(); // 使配置生效. button_stop.Text = "Stop"; } } } }