zoukankan      html  css  js  c++  java
  • 一个简单实用的C#日志类

    不管是Web应用还是Windows Forms 应用,系统日志我们都经常用到。日志可以帮助我们跟踪监视系统的运行状况,及时发现错误,输出调式信息等。记录日志的方法很多,比如用文本文件、XML文件、数据库等。而用文本文件记录日志是最常用的方法之一。

    这里就是一个用文本文件记录日志的简单实用的日志类,它有如下几个特点:

    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\";
                }
                
    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"
                    );
                sw.WriteLine(DateTime.Now.ToString(
    "yyyy-MM-dd HH:mm:ss: "+ msg);
                sw.Close();
            }
            
    catch
            { }
        }

        
    /// <summary>
        
    /// 写日志
        
    /// </summary>
        public static void WriteLog(LogFile logFile, string msg)
        {
            WriteLog(logFile.ToString(), msg);
        }
    }

    /// <summary>
    /// 日志类型
    /// </summary>
    public enum LogFile
    {
        Trace,
        Warning,
        Error,
        SQL
    }

     使用方法:

    LogManager.LogFielPrefix = "ERP ";
    LogManager.LogPath 
    = @"C:\";
    LogManager.WriteLog(LogFile.Trace, 
    "A test Msg.");
  • 相关阅读:
    『中级篇』docker导学(一)
    计算机或许已经烂大街了,女生学计算机没出路吗?
    「初级篇」跟我一起学docker(17)--多节点mesos集群
    「初级篇」跟我一起学docker(18)--持续集成(初级终结篇)
    「初级篇」跟我一起学docker(16)--单节点mesos集群
    QT socket 多线程管理
    mysql数据库引擎 MyISAM和 InnoDB区别
    sql 删除表格delete drop truncate 区别(转)
    按层次遍历二叉树
    php基础排序算法 冒泡排序 选择排序 插入排序 归并排序 快速排序
  • 原文地址:https://www.cnblogs.com/scgw/p/1512507.html
Copyright © 2011-2022 走看看