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.");
  • 相关阅读:
    flask_第一个程序
    Web框架_MVC vs MVT
    python_使用qrcode生成二维码
    HDU 4641
    SPOJ NSUBSTR
    SPOJ LCS2 多个串的最长公共子串
    SPOJ LCS 后缀自动机找最大公共子串
    POJ 1509 循环同构的最小表示法
    HDU 4821 字符串hash
    SPOJ GSS1 静态区间求解最大子段和
  • 原文地址:https://www.cnblogs.com/anjou/p/1443102.html
Copyright © 2011-2022 走看看