zoukankan      html  css  js  c++  java
  • TraceLog.cs 累积 C#

      1 using System;
      2 using System.Collections.Generic;
      3 using System.Text;
      4 using System.IO;
      5 using System.Diagnostics;
      6 
      7 namespace UtilityClass
      8 {
      9     public class TraceLog : TraceListener
     10     {
     11         // 初始化时给定一个日志文件位置
     12         private string filePath;
     13 
     14         public TraceLog()
     15             : this("")
     16         { }
     17 
     18         public TraceLog(string filepath)
     19         {
     20             if (filepath.IndexOfAny(Path.GetInvalidFileNameChars()) > -1)
     21             {
     22                 ShowMsg.ShowErr(null, "指定路径无效!
    
    请重新设置日志文件路径!");
     23                 Trace.Listeners.Clear();
     24                 return;
     25             }
     26             filePath = ConvertX.IsNullOrEmpty(filepath) ? AppDomain.CurrentDomain.BaseDirectory + "\Error.Log" : Path.GetFullPath(filepath);
     27         }
     28 
     29         /// <summary>
     30         /// 保存 错误信息 到指定日志
     31         ///  此方法已重写 实际效果同 WriteLine
     32         /// </summary>
     33         public override void Write(string message)
     34         {
     35             File.AppendAllText(filePath, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + Environment.NewLine + message + Environment.NewLine);
     36         }
     37 
     38         /// <summary>
     39         /// 保存 错误信息 到指定日志
     40         /// </summary>
     41         public override void WriteLine(string message)
     42         {
     43             File.AppendAllText(filePath, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + Environment.NewLine + message + Environment.NewLine);
     44         }
     45 
     46         /// <summary>
     47         /// 输入一个 Exception 对象
     48         ///  它将在日志文件中保存 错误信息 和 堆栈信息
     49         /// </summary>
     50         public override void WriteLine(object o)
     51         {
     52             string msg = "";
     53             Exception ex = o as Exception;
     54             if (ex != null)
     55             {
     56                 msg = ex.Message + Environment.NewLine;
     57                 msg += ex.StackTrace;
     58             }
     59             else if (o != null)
     60             {
     61                 msg = o.ToString();
     62             }
     63             WriteLine(msg);
     64         }
     65 
     66         /// <summary>
     67         /// 输入一个 错误信息 和一个 分类名称
     68         ///  它将在日志文件中保存 错误信息
     69         /// </summary>
     70         public override void WriteLine(string message, string category)
     71         {
     72             string msg = "";
     73             if (!ConvertX.IsNullOrEmpty(category))
     74             {
     75                 msg = category + ":";
     76             }
     77             msg += message;
     78             WriteLine(msg);
     79         }
     80 
     81         /// <summary>
     82         /// 输入一个 Exception 对象和一个 分类名称
     83         ///  它将在日志文件中保存 错误信息 和 堆栈信息
     84         /// </summary>
     85         public override void WriteLine(object o, string category)
     86         {
     87             string msg = "";
     88             if (!ConvertX.IsNullOrEmpty(category))
     89             {
     90                 msg = category + ":";
     91             }
     92             if (o is Exception)
     93             {
     94                 var ex = (Exception)o;
     95                 msg += ex.Message + Environment.NewLine;
     96                 msg += ex.StackTrace;
     97             }
     98             else if (o != null)
     99             {
    100                 msg = o.ToString();
    101             }
    102             WriteLine(msg);
    103         }
    104     }
    105 }
  • 相关阅读:
    对象内存布局 (2)
    对象内存布局 (1)
    C++虚函数及虚函数表解析
    C++ inline 函数
    第十六章 贪心算法——0/1背包问题
    动态规划——活动选择问题
    第十六章 贪心算法——活动选择问题
    第十五章 动态规划——最优二叉搜索树
    Cannot load supported formats: Cannot run program "svn"
    idea 配置多个tomcat
  • 原文地址:https://www.cnblogs.com/z5337/p/3725017.html
Copyright © 2011-2022 走看看