OutputNlog.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. using NLog;
  2. using NLog.Config;
  3. using OTS.WinFormsUI.Docking;
  4. using System;
  5. using System.Linq;
  6. namespace OTSIncAReportApp
  7. {
  8. public partial class OutputNlog : DockContent
  9. {
  10. protected static NLog.Logger loger;
  11. public OutputNlog()
  12. {
  13. InitializeComponent();
  14. }
  15. private void OTSMeasureOutputNlog_Load(object sender, EventArgs e)
  16. {
  17. combox_NlogType.Items.Add("Trace");
  18. combox_NlogType.Items.Add("Debug");
  19. combox_NlogType.Items.Add("Info");
  20. combox_NlogType.Items.Add("Warn");
  21. combox_NlogType.Items.Add("Error");
  22. combox_NlogType.Items.Add("Fatal");
  23. combox_NlogType.SelectedIndex = 0;
  24. loger = NLog.LogManager.GetCurrentClassLogger();
  25. }
  26. private void button_test_Click(object sender, EventArgs e)
  27. {
  28. loger = NLog.LogManager.GetCurrentClassLogger();
  29. loger.Trace("Trace");
  30. loger.Debug("Debug");
  31. loger.Info("Info");
  32. loger.Warn("Warn");
  33. loger.Error("Error");
  34. loger.Fatal("Fatal THIS IS A LOG WHICH USED TO TEST THE LOG LENTH FIT TO THE FORM!");
  35. }
  36. private void button_Clear_Click(object sender, EventArgs e)
  37. {
  38. richTextBox_Nlog.Clear();
  39. }
  40. private void combox_NlogType_SelectedIndexChanged(object sender, EventArgs e)
  41. {
  42. if (null == combox_NlogType.SelectedItem) return;
  43. String str = combox_NlogType.SelectedItem.ToString(); // 获取日志级别.
  44. LogLevel lv = LogLevel.Info; // 若选择的值无效, 则当作 Info级.
  45. lv = LogLevel.FromString(str);
  46. LoggingRule lr = LogManager.Configuration.LoggingRules.FirstOrDefault(
  47. r => r.Targets.Any(
  48. t => "control" == t.Name
  49. )
  50. );
  51. if (lr != null)
  52. {
  53. lr.SetLoggingLevels(lv, LogLevel.Fatal);
  54. LogManager.ReconfigExistingLoggers(); // 使配置生效.
  55. }
  56. }
  57. private void button_stop_Click(object sender, EventArgs e)
  58. {
  59. if (button_stop.Text == "Stop")
  60. {
  61. LoggingRule lr = LogManager.Configuration.LoggingRules.FirstOrDefault(
  62. r => r.Targets.Any(
  63. t => "control" == t.Name
  64. )
  65. );
  66. LogManager.Configuration.LoggingRules.Remove(lr);
  67. LogManager.ReconfigExistingLoggers();
  68. button_stop.Text = "Start";
  69. }
  70. else
  71. {
  72. if (null == combox_NlogType.SelectedItem) return;
  73. String str = combox_NlogType.SelectedItem.ToString();
  74. LogManager.Configuration.AddRule(LogLevel.FromString(str), LogLevel.Fatal, "control");
  75. LogManager.ReconfigExistingLoggers(); // 使配置生效.
  76. button_stop.Text = "Stop";
  77. }
  78. }
  79. }
  80. }