您的位置:首页 > 编程语言 > C#

TraceLog.cs 累积 C#

2014-05-13 10:51 295 查看
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Diagnostics;

namespace UtilityClass
{
public class TraceLog : TraceListener
{
// 初始化时给定一个日志文件位置
private string filePath;

public TraceLog()
: this("")
{ }

public TraceLog(string filepath)
{
if (filepath.IndexOfAny(Path.GetInvalidFileNameChars()) > -1)
{
ShowMsg.ShowErr(null, "指定路径无效!\r\n\r\n请重新设置日志文件路径!");
Trace.Listeners.Clear();
return;
}
filePath = ConvertX.IsNullOrEmpty(filepath) ? AppDomain.CurrentDomain.BaseDirectory + "\\Error.Log" : Path.GetFullPath(filepath);
}

/// <summary>
/// 保存 错误信息 到指定日志
///  此方法已重写 实际效果同 WriteLine
/// </summary>
public override void Write(string message)
{
File.AppendAllText(filePath, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + Environment.NewLine + message + Environment.NewLine);
}

/// <summary>
/// 保存 错误信息 到指定日志
/// </summary>
public override void WriteLine(string message)
{
File.AppendAllText(filePath, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + Environment.NewLine + message + Environment.NewLine);
}

/// <summary>
/// 输入一个 Exception 对象
///  它将在日志文件中保存 错误信息 和 堆栈信息
/// </summary>
public override void WriteLine(object o)
{
string msg = "";
Exception ex = o as Exception;
if (ex != null)
{
msg = ex.Message + Environment.NewLine;
msg += ex.StackTrace;
}
else if (o != null)
{
msg = o.ToString();
}
WriteLine(msg);
}

/// <summary>
/// 输入一个 错误信息 和一个 分类名称
///  它将在日志文件中保存 错误信息
/// </summary>
public override void WriteLine(string message, string category)
{
string msg = "";
if (!ConvertX.IsNullOrEmpty(category))
{
msg = category + ":";
}
msg += message;
WriteLine(msg);
}

/// <summary>
/// 输入一个 Exception 对象和一个 分类名称
///  它将在日志文件中保存 错误信息 和 堆栈信息
/// </summary>
public override void WriteLine(object o, string category)
{
string msg = "";
if (!ConvertX.IsNullOrEmpty(category))
{
msg = category + ":";
}
if (o is Exception)
{
var ex = (Exception)o;
msg += ex.Message + Environment.NewLine;
msg += ex.StackTrace;
}
else if (o != null)
{
msg = o.ToString();
}
WriteLine(msg);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: