• [C#] 日志类


    在程序发布到服务器上的时候,不能在像本地执行一样可以调试,在发生错误时候,往往不能很方便的查找错误。将错误信息写入文件是一种比较常用的处理方法。以下是一个日志类,实现以下功能:

    1)按日期每天生产不同日志文件,方便按照日期来查找日志。

    2)按日志类型生产不同的文件,比如 跟踪信息、警告信息、错误信息用不同的日志文件来记录;方便我们查找指定类型的日志。

    3)可以指定保持日志文件文件夹,如果不指定日志文件夹,Web应用保持到Bin文件夹,Windows Forms应用保持到.EXE文件所在的文件夹。

    4)可以指定日志的前缀

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Web;
    
    /// <summary>
    /// LogManager 的摘要说明
    /// </summary>
    /// 1)按日期每天生产不同日志文件,方便按照日期来查找日志。
    /// 2)按日志类型生产不同的文件,比如 跟踪信息、警告信息、错误信息用不同的日志文件来记录;方便我们查找指定类型的日志。
    /// 3)可以指定保持日志文件文件夹,如果不指定日志文件夹,Web应用保持到Bin文件夹,Windows Forms应用保持到.EXE文件所在的文件夹。
    /// 4)可以指定日志文件的前缀。
    public class LogManager
    {
        private static string logPath = string.Empty;
        /// <summary>  
        /// 保存日志的文件夹  
        /// </summary>  
        public static string LogPath
        {
            get
            {
                if (logPath == string.Empty)
                {
                    if (System.Web.HttpContext.Current == null)
                        // Windows Forms 应用  
                        logPath = AppDomain.CurrentDomain.BaseDirectory; //根目录
                    else
                        // Web 应用  
                        logPath = AppDomain.CurrentDomain.BaseDirectory + @"bin/"; //存放在bin文件夹下
                }
                return logPath;
            }
            set { logPath = value; }
        }
    
        private static string logFielPrefix = string.Empty;
        /// <summary>  
        /// 日志文件前缀  
        /// </summary>  
        public static string LogFielPrefix
        {
            get { return logFielPrefix; }
            set { logFielPrefix = value; }
        }
    
        /// <summary>  
        /// 写日志  
        /// </summary>  
        public static void WriteLog(string logFile, string msg)
        {
            try
            {
                System.IO.StreamWriter sw = System.IO.File.AppendText(
                LogPath + LogFielPrefix + logFile + "_" +
                DateTime.Now.ToString("yyyyMMdd") + ".Log"
                );
                StringBuilder sb = new StringBuilder();
                //sb.Append("---------------------------------------------------------------------");
                sb.Append(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss: ") + "错误信息:");
                //sb.Append("---------------------------------------------------------------------");
                sb.Append(msg);
                //sb.Append("---------------------------------------------------------------------");
                sw.WriteLine(sb.ToString());
                sw.Close();
            }
            catch(Exception IoEx)
            {
                WriteLog(LogFile.Error, IoEx.Message.ToString());
            }
        }
    
        /// <summary>  
        /// 写日志  
        /// </summary>  
        public static void WriteLog(LogFile logFile, string msg)
        {
            WriteLog(logFile.ToString(), msg);
        }
    }
    
    /// <summary>  
    /// 日志类型  
    /// </summary>  
    public enum LogFile
    {
        Trace, //跟踪文件
        Warning,//警告文件
        Error,
        SQL 
    }
    

      调用

    LogManager.LogPath = "D://"; //文件目录 不赋值存放在默认位置
    LogManager.LogFielPrefix = "02"; //文件前缀
    LogManager.WriteLog(LogFile.Trace,"26568235673265874");
    

      

      

  • 相关阅读:
    Dynamics 365 CRM large instance copy
    Dynamics CRM Plug-in
    Dynamics CRM Publisher
    Dynamics 365 CRM Free up storage 清理Dynamics 365 CRM的空间
    账户和联系人 Accounts and Contacts 译
    Dynamics CRM Instances
    Dynamics CRM Solution
    微软Azure通知中心 (Azure Notification Hubs)
    CLR(Common Language Runtime) 公共语言运行库
    构建Apache Web服务器
  • 原文地址:https://www.cnblogs.com/linhuide/p/6170610.html
Copyright © 2020-2023  润新知