一個簡單實用的C#日誌類(第一版)

來源:互聯網
上載者:User

    不管是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.");

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.