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" );
}
运行完程序后打开日志管理器看看~~~~~~~~~怎么样?不错吧,呵呵.