C#中使用打印日志

在日常的工作中经常需要日志,这样能够很容易定位到代码中的一些错误,.Net中有自带的日志接口。并没有仔细去研究,这里是我自己写的日志接口,记录下来以便以后用到,根据时间打印相关的日志文件,代码如下:

namespace InspectionQueue.CommonHelper
{
    public class LogInfoHelp
    {
        /// <summary>
        /// 日志类型
        /// </summary>
        private enum LOG_TYPE
        {
            LOG_FAIL = 0,    //致命错误
            LOG_ERROR,       //一般错误
            LOG_EXCEPTION,   //异常
            LOG_WARN,        //警告
            LOG_INFO,        //一般信息
        }
        
        private StreamWriter LogFile = null;
        private static LogInfoHelp _instance = null;
        private string LogFilePath = null;

        public static LogInfoHelp GetInstance()
        {
            if(null == _instance)
            {
                _instance = new LogInfoHelp();
            }

            return _instance;
        }
        private LogInfoHelp() { }

        /// <summary>
        /// 创建日志文件
        /// </summary>
        public void CreateLogFile()
        {
            //获取运行程序的路径
            string logFilePath = AppDomain.CurrentDomain.BaseDirectory;
            string logFileName = (DateTime.Now.Year).ToString() + '-' 
                + (DateTime.Now.Month).ToString() + '-' + (DateTime.Now.Day).ToString() + "_Log.log";
            logFilePath += "logFile\\";
            if (!Directory.Exists(logFilePath))
            {
                Directory.CreateDirectory(logFilePath);
            }
            this.LogFilePath = logFilePath + logFileName;        
        }

        /// <summary>
        /// 信息写入日志
        /// </summary>
        /// <param name="strMsg"></param>
        public void WriteInfoToLogFile(string strLogInfo, ConstValues.LOG_TYPE logType)
        {
            LogFile = new StreamWriter(LogFilePath, true);//文件保存位置
            string strlogInfo = null;
            switch(logType)
            {
                case ConstValues.LOG_TYPE.LOG_FAIL:
                    {
                        strlogInfo = String.Format("[{0}] 致命错误:{1}", DateTime.Now.ToString(), strLogInfo);
                    }
                    break;

                case ConstValues.LOG_TYPE.LOG_ERROR:
                    {
                        strlogInfo = String.Format("[{0}] 一般错误:{1}", DateTime.Now.ToString(), strLogInfo);
                    }
                    break;

                case ConstValues.LOG_TYPE.LOG_EXCEPTION:
                    {
                        strLogInfo = String.Format("[{0}] 异常:{1}", DateTime.Now.ToString(), strLogInfo);
                    }
                    break;

                case ConstValues.LOG_TYPE.LOG_WARN:
                    {
                        strLogInfo = String.Format("[{0}] 警告:{1}", DateTime.Now.ToString(), strLogInfo);
                    }
                    break;

                case ConstValues.LOG_TYPE.LOG_INFO:
                    {
                        strLogInfo = String.Format("[{0}] 一般信息:{1}", DateTime.Now.ToString(), strLogInfo);
                    }
                    break;                   
            }
            LogFile.WriteLine(strLogInfo);
            LogFile.Close();
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/QingYiShouJiuRen/p/10247009.html