您当前的位置:KKBlog > 学无止境 > ASP.NET

LogHelper

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
using System.IO;  
  
namespace Ella.ToolKit  
{  
    /// <summary>  
    /// 日志操作  
    /// <para/>Author : AnDequan  
    /// <para/>Date   : 2010-12-23  
    /// </summary>  
    public sealed class LogHelper : Singleton<LogHelper>  
    {  
        /// <summary>  
        /// 记录异常日志  
        /// <para/>Author : AnDequan  
        /// <para/>Date   : 2010-12-2  
        /// </summary>  
        /// <param name="ex">异常</param>  
        public void Add(Exception ex)  
        {  
            DateTime dtLog = DateTime.Now;  
            string sPath = @"D:/LogInfo/" + dtLog.Year + "//" + dtLog.Month;  
            ErrorRecord(ex, sPath);  
        }  
  
        /// <summary>  
        /// 记录异常日志  
        /// <para/>Author : AnDequan  
        /// <para/>Date   : 2010-12-2  
        /// </summary>  
        /// <param name="ex">异常</param>  
        /// <param name="path">生成错误信息的文件路径</param>  
        public void Add(Exception ex, string path)  
        {  
            ErrorRecord(ex, path);  
        }  
 
        #region User-Defined Private Function (辅助方法)  
  
        /// <summary>  
        /// 生成错误字符串  
        /// <para/>Author : AnDequan  
        /// <para/>Date   : 2010-12-2  
        /// </summary>  
        /// <param name="ex">错误</param>  
        /// <returns>错误信息</returns>  
        private string GetLogInfo(Exception ex)  
        {  
            StringBuilder sbLog = new StringBuilder();  
            sbLog.AppendLine("记录时间:" + DateTime.Now.ToLongDateString() + DateTime.Now.ToLongTimeString());  
            sbLog.AppendLine("异常实例: " + ex.InnerException.ToString());  
            sbLog.AppendLine("引发当前异常的方法: " + ex.TargetSite.ToString());  
            sbLog.AppendLine("导致错误的应用程序或对象的名称: " + ex.Source);  
            sbLog.AppendLine("");  
            return sbLog.ToString();  
        }  
  
        /// <summary>  
        /// 记录程序中的错误  
        /// <para/>Author : AnDequan  
        /// <para/>Date   : 2010-11-4  
        /// </summary>  
        /// <param name="ex">异常信息</param>  
        /// <param name="path">生成错误信息的文件路径</param>  
        private void ErrorRecord(Exception ex, string path)  
        {  
            string sFileName = DateTime.Now.ToLongDateString() + ".txt";  
            if (!File.Exists(path + "//" + sFileName))  
            {  
                Directory.CreateDirectory(path);  
                using (FileStream fsError = new FileStream(path + "//" + sFileName, FileMode.Create))  
                {  
                    using (StreamWriter swError = new StreamWriter(fsError))  
                    {  
                        swError.WriteLine(GetLogInfo(ex));  
                    }  
                }  
            }  
            else  
            {  
                using (FileStream fsError = new FileStream(path + "//" + sFileName, FileMode.Append))  
                {  
                    using (StreamWriter swError = new StreamWriter(fsError))  
                    {  
                        swError.WriteLine(GetLogInfo(ex));  
                    }  
                }  
            }  
        }  
        #endregion  
    }  
}
二维码
意见反馈 二维码