Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7933442
  • 博文数量: 124
  • 博客积分: 2880
  • 博客等级: 少校
  • 技术积分: 873
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-16 17:08
文章分类

全部博文(124)

文章存档

2011年(28)

2010年(60)

2009年(36)

我的朋友

分类: C/C++

2009-09-17 14:46:58

一个简单实用的C#日志类

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

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

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

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

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

4)可以指定日志文件的前缀。

public class LogManager
{
    
private static string logPath = string.Empty;
    
/// 
    
/// 保存日志的文件夹
    
/// 

    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;
    
/// 
    
/// 日志文件前缀
    
/// 

    public static string LogFielPrefix
    {
        
get { return logFielPrefix; }
        
set { logFielPrefix = value; }
    }

    
/// 
    
/// 写日志
    
/// 

    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
        { }
    }

    
/// 
    
/// 写日志
    
/// 

    public static void WriteLog(LogFile logFile, string msg)
    {
        WriteLog(logFile.ToString(), msg);
    }
}

/// 
/// 日志类型
/// 

public enum LogFile
{
    Trace,
    Warning,
    Error,
    SQL
}

 

 使用方法:

LogManager.LogFielPrefix = "ERP ";
LogManager.LogPath 
= @"C:\";
LogManager.WriteLog(LogFile.Trace, 
"A test Msg.");
阅读(979) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~