C# 使用TraceSource记录程序日志

TraceSource类的前身是Trace与Debug。在项目的实际使用过程中,一般通过以下步骤使用:


【1】定义配置文件.Config -- 配置TraceSource的源、控制级别、监听器等

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  
  <system.diagnostics>
    <!-- 跟踪的源 -->
    <sources>
      <source name="LogTrace" switchName="LogTraceSourceSwitch" switchType="System.Diagnostics.SourceSwitch" >
        <listeners>
          <add name="textListener" />
          <remove name ="Default" />
        </listeners>
      </source>
    </sources>
    <!-- 控制跟踪输出 -->
    <switches>
      <!-- 侦听的全局级别, 对所有的侦听器有效 -->
      <add name="LogTraceSourceSwitch" value="Information" />
      <!-- 可以关闭全局侦听 -->
      <!--add name="LogTraceSourceSwitch" value="Off" -->
    </switches>
    <!-- 侦听器 -->
    <sharedListeners>
      <add name="textListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="trace.log">
        <!--设定特定侦听器的监听级别-->
        <filter type="System.Diagnostics.EventTypeFilter" initializeData="Warning" />
      </add>
    </sharedListeners>
    <!-- 侦听设置 -->
    <trace autoflush="true" indentsize="4" />    
  </system.diagnostics>
  
</configuration>

【2】定义TraceSource对象,可以简单封装

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;

namespace LogTrace.Log
{
    class CLog
    {
        public static void LogCritical(string strMessage)
        {
            _ts.TraceEvent(TraceEventType.Critical,
                           0,
                           "   [{0}{1}]: {2}", 
                           DateTime.Now.ToLongDateString(), 
                           DateTime.Now.ToLongTimeString(), 
                           strMessage);       
        }

        public static void LogError(string strMessage)
        {
            _ts.TraceEvent(TraceEventType.Error,
                           0,
                           "      [{0}{1}]: {2}",
                           DateTime.Now.ToLongDateString(),
                           DateTime.Now.ToLongTimeString(),
                           strMessage);            
        }

        public static void LogWarning(string strMessage)
        {
            _ts.TraceEvent(TraceEventType.Warning,
                           0,
                           "    [{0}{1}]: {2}",
                           DateTime.Now.ToLongDateString(),
                           DateTime.Now.ToLongTimeString(),
                           strMessage);            
        }

        public static void LogInformation(string strMessage)
        {
            _ts.TraceEvent(TraceEventType.Information,
                            0,
                           "[{0}{1}]: {2}",
                           DateTime.Now.ToLongDateString(),
                           DateTime.Now.ToLongTimeString(),
                           strMessage);             
        }       

        private static TraceSource _ts = new TraceSource("LogTrace");
    }
}

【4】编写测试代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using LogTrace.Log;

namespace LogTrace
{
    class Program
    {
        static void Main(string[] args)
        {
            CLog.LogCritical("Video Play()");
            CLog.LogError("Audio Play()");
            CLog.LogWarning("Picture Play()");
            CLog.LogInformation("SubTitle Play()");
        }
    }
}

【5】测试结果





  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郎涯技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值