在windows2000中使用.NET写日志

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

1.首先请参阅其他技术专栏中用VB6.0访问注册表,创建

HKEY_LOCAL_MACHINE,\SYSTEM\CurrentControlSet\Services\Eventlog\Eventlog2\Eventlog2键,并且写入EventMessageFile,value为C:\WINNT\Microsoft.NET\Framework\v1.1.4322\EventLogMessages.dll

2.在C#.net使用以下代码写日志

//输出日志的CLASS

using System;

using System.Diagnostics;

using System.Text;

namespace CorePlus.Framework.Utility

{

/// <summary>

/// 写日志的CLASS

/// </summary>

public class LogUtility

{

public enum EVENT

{

/// <summary>重大错误</summary>

EVENT_ERROR,

/// <summary>操作失败</summary>

EVENT_FAILUREAUDIT,

/// <summary>一般信息</summary>

EVENT_INFORMATION,

/// <summary>有效的,成功的操作</summary>

EVENT_SUCCESSAUDIT,

/// <summary>警告</summary>

EVENT_WARNING,

}

private static TextWriterTraceListener listner = null;

/// <summary>

/// 构造函数

/// </summary>

public LogUtility () {}

/// <param name="loginID">登录ID</param>

/// <param name="screenID">画面ID</param>

/// <param name="level">警告级别</param>

/// <param name="message">日志信息</param>

public static void Logging (

string loginID,

string screenID,

EVENT level,

string message )

{

// 变量定义

StringBuilder outputMessage = null; // 输出的信息

string targetLevelString = null;

EventLogEntryType Eventtype = new EventLogEntryType();

switch (level)

{

case EVENT.EVENT_ERROR:

Eventtype = EventLogEntryType.Error;

break;

case EVENT.EVENT_FAILUREAUDIT:

Eventtype = EventLogEntryType.FailureAudit;

break;

case EVENT.EVENT_INFORMATION:

Eventtype = EventLogEntryType.Information;

break;

case EVENT.EVENT_SUCCESSAUDIT:

Eventtype = EventLogEntryType.SuccessAudit;

break;

case EVENT.EVENT_WARNING:

Eventtype = EventLogEntryType.Warning;

break;

}

// 日志信息的拼合

outputMessage = MakeMessage( loginID, screenID, targetLevelString, message );

// 写日志

Logging( Eventtype, outputMessage.ToString() );

}

/// <summary>

/// 向日志管理器写日志

/// </summary>

/// <param name="level">错误级别</param>

/// <param name="message">输出的信息</param>

private static void Logging ( EventLogEntryType level, string message )

{

// 变量定义

string logName = null; // 日志名

string machineName = null; // 机器名

string sourceName = null; // SourceName

EventLog eventLog = null; // EventLog

logName = "Eventlog2"; // 日志名

machineName = "."; // 机器名

sourceName = "Eventlog2"; // SourceName

eventLog = new EventLog( logName, machineName, sourceName );

eventLog.WriteEntry( message,level );

eventLog = null;

}

/// <summary>

/// 日志最终拼合

/// </summary>

/// <param name="loginID">登录ID</param>

/// <param name="screenID">画面ID</param>

/// <param name="levelString">错误级别</param>

/// <param name="message">日志信息</param>

/// <returns>输出的日志信息</returns>

private static StringBuilder MakeMessage (

string loginID,

string screenID,

string levelString,

string message )

{

// 变量定义

StringBuilder retMessage = new StringBuilder();

retMessage.Append( "【登录ID】" );

retMessage.Append( loginID );

retMessage.Append( "\n【画面ID】" );

retMessage.Append( screenID );

retMessage.Append( "\n【错误级别】" );

retMessage.Append( levelString );

retMessage.Append( "\n【错误信息】\n" );

retMessage.Append( message );

return retMessage;

}

}

}

// 在FORM中输出日志

private void button1_Click(object sender, System.EventArgs e)

{

LogUtility.Logging( "bbbbbb","22222222",LogUtility.EVENT.EVENT_ERROR,"3333333" );

}

运行完程序后打开日志管理器看看~~~~~~~~~怎么样?不错吧,呵呵.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航