C#记录日志到本地文件工具类

using System;
using System.Diagnostics;
using System.IO;
using System.Threading;
using System.Web;

namespace Com.AppCode.Helper
{
    /// <summary>
    /// 日志记录到本地文件
    /// </summary>
    public class Log
    {
        /// <summary>
        /// 调试日志
        /// </summary>
        /// <param name="msg"></param>
        static public void Debug(object msg)
        {
            WriteLog("Debug", string.Empty, msg);
        }
        /// <summary>
        /// 错误或异常日志
        /// </summary>
        /// <param name="msg"></param>
        static public void Error(object msg)
        {
            WriteLog("Error", string.Empty, msg);
        }
        /// <summary>
        /// 内容日志
        /// </summary>
        /// <param name="msg"></param>
        static public void Info(object msg)
        {
            WriteLog("Info", string.Empty, msg);
        }
        /// <summary>
        /// 警告日志
        /// </summary>
        /// <param name="msg"></param>
        static public void Warn(object msg)
        {
            WriteLog("Warn", string.Empty, msg);
        }

        /// <summary>
        /// 微信日志
        /// </summary>
        static public void Mp(object msg)
        {
            WriteLog("Mp", string.Empty, msg);
        }

        static private Mutex m_Mutex = new Mutex();
        /// <summary>
        /// 日志文件记录
        /// </summary>
        /// <param name="errorType">日志类型</param>
        /// <param name="pre">文件前缀可不填写</param>
        /// <param name="msg">日志内容</param>
        static public void WriteLog(object errorType, object pre, object msg)
        {
            try
            {
                m_Mutex.WaitOne();
            }
            catch (Exception)
            {
                return;
            }
            try
            {
                string dir = "/log/" + errorType + "/";
                string dirPath = HttpContext.Current.Server.MapPath(dir);
                if (!Directory.Exists(dirPath))
                {
                    Directory.CreateDirectory(dirPath);
                }
                string fileName = pre + DateTime.Today.ToString("yyyyMMdd") + ".log";
                string logPath = Path.Combine(dirPath, fileName);
                if (!File.Exists(logPath))
                {
                    File.Create(logPath).Close();
                }
                TextWriter oWrite = File.AppendText(logPath);
                string sTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff");
                oWrite.WriteLine(sTime + ": " + msg);
                oWrite.Close();
            }
            catch (Exception e)
            {
                EventLog myLog = new EventLog();
                myLog.Source = "Com.Log";
                myLog.WriteEntry("Write Log Error:" + msg + "\t" + e.Message);
            }
            finally
            {
                m_Mutex.ReleaseMutex();
            }
        }
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值