C#2005 一个简单的写日志类
2008-04-11 15:23
281 查看
using System;
using System.Windows.Forms;
using System.Threading;
using System.IO;
namespace FileControl
{
/// <summary>
/// Log类的摘要说明。
/// </summary>
public class Log
{
static object writeLog = 0;
private static string logFileNameDefine ="PoliScan-M.evt";
private const int FILEMAXLENGTH = 1024 * 128;
public const int LOGTYPEDEFAULT = 0;
public const int LOGTYPESYSTEM = 1;
public const int LOGTYPENORMAL = 2;
public const int LOGTYPEWARNING = 3;
public const int LOGTYPEERROR = 4;
/// <summary>
/// Log类的普通构造函数
/// </summary>
public Log()
{
}
/// <summary>
/// Log类静态构造函数
/// </summary>
static Log()
{
}
/// <summary>
/// 设置日志文件名
/// </summary>
/// <param name="logFileName">日志文件名[默认为PoliScan-M.evt]</param>
public static bool SetLogFileName(string logFileName)
{
if ((logFileName.Length > 4) && (logFileName.IndexOf(".") != -1))
{
logFileNameDefine = logFileName;
return true;
}
else
{
return false;
}
}
/// <summary>
/// 写日志
/// </summary>
/// <param name="eventDescription">信息的详细描述</param>
public static void WriteToFile(string eventDescription)
{
WriteToFile(0,"@系统记录@",eventDescription,false);
}
/// <summary>
/// 写日志
/// </summary>
/// <param name="eventSite">信息写入时程序位置或事件位置</param>
/// <param name="eventDescription">信息的详细描述</param>
public static void WriteToFile(string eventSite,string eventDescription)
{
WriteToFile(0,eventSite,eventDescription,false);
}
/// <summary>
/// 写日志
/// </summary>
/// <param name="eventState">信息标志位,标识不同类型的信息</param>
/// <param name="eventSite">信息写入时程序位置或事件位置</param>
/// <param name="eventDescription">信息的详细描述</param>
public static void WriteToFile(int eventState,string eventSite,string eventDescription)
{
WriteToFile(eventState,eventSite,eventDescription,false);
}
/// <summary>
/// 写日志
/// </summary>
/// <param name="eventState">信息标志位,标识不同类型的信息</param>
/// <param name="eventSite">信息写入时程序位置或事件位置</param>
/// <param name="eventDescription">信息的详细描述</param>
/// <param name="eventSeparate">是否需要添加分隔符</param>
public static void WriteToFile(int eventState,string eventSite,string eventDescription,bool eventSeparate)
{
Monitor.Enter(writeLog);
try
{
DateTime currnetTime = DateTime.Now;
DirectoryInfo logDirectory;
string logFile;
FileInfo logFileInfo;
StreamWriter streamFile;
string lineInfo;
logDirectory= new DirectoryInfo(Application.StartupPath + @"/Log") ;
if (!logDirectory.Exists)
{
logDirectory.Create();
}
logFile = Application.StartupPath + @"/Log/" + logFileNameDefine;
logFileInfo = new FileInfo(logFile);
if (logFileInfo.Exists)
{
if(logFileInfo.Length > FILEMAXLENGTH)
{
logFileInfo.Delete();
}
}
streamFile = new StreamWriter(logFile, true);
try
{
lineInfo = (currnetTime.ToString("[yyyy-MM-dd HH:mm:ss]")) + @"|" +
eventState.ToString() + @"|" +
eventSite + @"|" +
eventDescription;
if (eventSeparate)
{
streamFile.WriteLine("");
}
streamFile.WriteLine(lineInfo);
}
finally
{
streamFile.Close();
}
}
catch
{
}
finally
{
Monitor.Exit (writeLog);
}
return;
}
}
}
using System.Windows.Forms;
using System.Threading;
using System.IO;
namespace FileControl
{
/// <summary>
/// Log类的摘要说明。
/// </summary>
public class Log
{
static object writeLog = 0;
private static string logFileNameDefine ="PoliScan-M.evt";
private const int FILEMAXLENGTH = 1024 * 128;
public const int LOGTYPEDEFAULT = 0;
public const int LOGTYPESYSTEM = 1;
public const int LOGTYPENORMAL = 2;
public const int LOGTYPEWARNING = 3;
public const int LOGTYPEERROR = 4;
/// <summary>
/// Log类的普通构造函数
/// </summary>
public Log()
{
}
/// <summary>
/// Log类静态构造函数
/// </summary>
static Log()
{
}
/// <summary>
/// 设置日志文件名
/// </summary>
/// <param name="logFileName">日志文件名[默认为PoliScan-M.evt]</param>
public static bool SetLogFileName(string logFileName)
{
if ((logFileName.Length > 4) && (logFileName.IndexOf(".") != -1))
{
logFileNameDefine = logFileName;
return true;
}
else
{
return false;
}
}
/// <summary>
/// 写日志
/// </summary>
/// <param name="eventDescription">信息的详细描述</param>
public static void WriteToFile(string eventDescription)
{
WriteToFile(0,"@系统记录@",eventDescription,false);
}
/// <summary>
/// 写日志
/// </summary>
/// <param name="eventSite">信息写入时程序位置或事件位置</param>
/// <param name="eventDescription">信息的详细描述</param>
public static void WriteToFile(string eventSite,string eventDescription)
{
WriteToFile(0,eventSite,eventDescription,false);
}
/// <summary>
/// 写日志
/// </summary>
/// <param name="eventState">信息标志位,标识不同类型的信息</param>
/// <param name="eventSite">信息写入时程序位置或事件位置</param>
/// <param name="eventDescription">信息的详细描述</param>
public static void WriteToFile(int eventState,string eventSite,string eventDescription)
{
WriteToFile(eventState,eventSite,eventDescription,false);
}
/// <summary>
/// 写日志
/// </summary>
/// <param name="eventState">信息标志位,标识不同类型的信息</param>
/// <param name="eventSite">信息写入时程序位置或事件位置</param>
/// <param name="eventDescription">信息的详细描述</param>
/// <param name="eventSeparate">是否需要添加分隔符</param>
public static void WriteToFile(int eventState,string eventSite,string eventDescription,bool eventSeparate)
{
Monitor.Enter(writeLog);
try
{
DateTime currnetTime = DateTime.Now;
DirectoryInfo logDirectory;
string logFile;
FileInfo logFileInfo;
StreamWriter streamFile;
string lineInfo;
logDirectory= new DirectoryInfo(Application.StartupPath + @"/Log") ;
if (!logDirectory.Exists)
{
logDirectory.Create();
}
logFile = Application.StartupPath + @"/Log/" + logFileNameDefine;
logFileInfo = new FileInfo(logFile);
if (logFileInfo.Exists)
{
if(logFileInfo.Length > FILEMAXLENGTH)
{
logFileInfo.Delete();
}
}
streamFile = new StreamWriter(logFile, true);
try
{
lineInfo = (currnetTime.ToString("[yyyy-MM-dd HH:mm:ss]")) + @"|" +
eventState.ToString() + @"|" +
eventSite + @"|" +
eventDescription;
if (eventSeparate)
{
streamFile.WriteLine("");
}
streamFile.WriteLine(lineInfo);
}
finally
{
streamFile.Close();
}
}
catch
{
}
finally
{
Monitor.Exit (writeLog);
}
return;
}
}
}
相关文章推荐
- 一个简单的.net写日志方法 - 可能的改进点
- 一个简单的日志收集
- 一个简单用C语言实现的日志函数
- 一个简单的自定义程序日志小样例
- 一个简单实用的C#日志类(第二版)
- 一个简单的日志采集方案
- 一个简单的rss浏览器的开发日志
- Android开发Log最佳实践-一个简单、漂亮、功能强大的Android日志程序:logger
- 一个同步日志系统的简单实现 log for c (linux 平台)
- 公布一个简单的日志记录方法
- 使用NLog实现一个简单的日志记录(包含源代码)
- 一个简单、漂亮、功能强大的Android日志程序:logger
- 基于C#中的Trace实现一个简单的日志系统
- Linux初级脚本:一个简单的日志核查脚本
- java简单实现一个日志工具类(用于服务器调试)
- 一个简单带日志的内存申请和释放的类
- 一个简单的Python日志程序代码,支持按天滚动,限制备份保留个数
- 一个简单的C#文件日志组件
- 进程与线程的一个简单解释---阮一峰的网络日志
- 重新写了一个简单的日志类