C#写文本日志帮助类(支持多线程)

8/3/2015来源:C#应用人气:1910

C#写文本日志帮助类(支持多线程)

代码:

using System;using System.Configuration;using System.IO;using System.Threading;namespace FQDService.Utils{    /// <summary>    /// 写日志类    /// </summary>    public class FileLogger    {        #region 字段        public static readonly object _lock = new object();        #endregion        #region 写文件        /// <summary>        /// 写文件        /// </summary>        public static void WriteFile(string log, string path)        {            Thread thread = new Thread(new ParameterizedThreadStart(delegate(object obj)            {                lock (_lock)                {                    if (!File.Exists(path))                    {                        using (FileStream fs = new FileStream(path, FileMode.Create)) { }                    }                    using (FileStream fs = new FileStream(path, FileMode.Append, Fileaccess.Write))                    {                        using (StreamWriter sw = new StreamWriter(fs))                        {                            #region 日志内容                            string value = string.Format(@"{0}--------------------------------------------------------{1}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), obj.ToString());                            #endregion                            sw.WriteLine(value);                            sw.Flush();                        }                    }                }            }));            thread.Start(log);        }        #endregion        #region 写日志        /// <summary>        /// 写日志        /// </summary>        public static void WriteLog(string log)        {            string logPath = ConfigurationManager.AppSettings["LogPath"] + "\\FQDService_Log.txt";            WriteFile(log, logPath);        }        #endregion        #region 写错误日志        /// <summary>        /// 写错误日志        /// </summary>        public static void WriteErrorLog(string log)        {            string logPath = ConfigurationManager.AppSettings["LogPath"] + "\\FQDService_ErrorLog.txt";            WriteFile(log, logPath);        }        #endregion    }}
View Code