NLog同时输出到文件、控制台、RichTextBox

NLog同时输出到文件、控制台、RichTextBox

  1. 安裝NLog包VS安裝NLog
  2. 新增配置文件
<?xml version="1.0" encoding="utf-8"?>
<nlog xmlns="http://nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<targets>
		<!-- 控制台输出 -->
		<target name="console" xsi:type="Console" layout="${longdate} ${level} ${message}" />

		<!-- 按年月日创建文件夹 -->
		<target name="file" xsi:type="File"
				fileName="logs/${date:format=yyyy}/${date:format=MM}/${date:format=dd}log.txt"
				layout="${longdate} ${level} ${message}"
				archiveEvery="Day"
				maxArchiveFiles="90" />
	</targets>

	<rules>
		<!-- 输出所有日志到控制台 -->
		<logger name="*" minlevel="Trace" writeTo="console" />

		<!-- 输出所有日志到文件 -->
		<logger name="*" minlevel="Trace" writeTo="file" />
	</rules>
</nlog>
  1. 自定義RichTxtBoxTarget
using NLog.Targets;
using NLog;
using System;
using System.Windows.Forms;

namespace 你的namespace
{

    public class RichTextBoxTarget : TargetWithLayout
    {
        public RichTextBox RichTextBox { get; set; }

        protected override void Write(LogEventInfo logEvent)
        {
            if (RichTextBox != null)
            {
                // 在 RichTextBox 中添加日志信息
                RichTextBox.Invoke((MethodInvoker)delegate
                {
                    RichTextBox.AppendText(this.Layout.Render(logEvent) + Environment.NewLine);
                    RichTextBox.ScrollToCaret();
                });
            }
        }
    }
}

  1. Main方法中初始化RichTxtBox
        private void InitializeNLog()
        {
            // 设置 NLog 配置
            var richTextBoxTarget = new RichTextBoxTarget
            {
                Name = "richTextBox",
                RichTextBox = this.你的RichTextBox名称// 将 RichTextBox 控件传递给目标
            };

            // 将 RichTextBox 目标添加到 NLog
            LogManager.Configuration.AddTarget(richTextBoxTarget);
            LogManager.Configuration.LoggingRules.Add(new LoggingRule("*", LogLevel.Trace, richTextBoxTarget));

            // 应用配置
            LogManager.ReconfigExistingLoggers();
        }
  1. 结果展示:
    5.1 NLog输出到控制台
    NLog输出到控制台
    5.2 NLog输出到RichTxtBox
    NLog输出到RichTxtBox
    5.3 NLog输出到file中
    NLog输出到file中
    NLog输出到file中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值