[原创]在windows2000中使用.NET写日志

原创 2004年09月23日 16:13:00

                                                                                   作者:bluesky35(蓝天)

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" );
  }

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

Log4net在MVC中的应用

1、插件背景与功能 Log4net是基于.net开发的一款非常著名的记录日志开源组件。他最早是2001年7月由NeoWorks Limited启动的项目,基本的框架源于另外的一个非常著名的姐妹组件-l...
  • ltylove2007
  • ltylove2007
  • 2014年01月26日 11:14
  • 7875

ASP.NET Core 开发-Logging 使用NLog 写日志文件

ASP.NET Core 开发-Logging 使用NLog 写日志文件。 NLog 可以适用于 .NET Core 和 ASP.NET Core 。 ASP.NET Core已经内置了日...
  • merry3688
  • merry3688
  • 2016年07月29日 14:00
  • 3769

【.NET】Log4net将操作日志写入数据库

配置文件可以参考上篇博文【.NET】log4net配置文件解析.   先在Global.aspx中添加这样一句代码,来读取配置文件,初始化log4net的环境. public class...
  • zhuanzhe117
  • zhuanzhe117
  • 2015年01月04日 11:58
  • 3976

VC++信息安全编程(13)Windows2000/xp/vista/7磁盘扇区读写技术

有些时候,我们读取磁盘文件,会被hook.我们读到的可能并非实际的文件。 我们直接读取磁盘扇区获取数据。 实现磁盘数据的读写,不依赖WindowsAPI。   [cpp] view p...
  • thanklife
  • thanklife
  • 2017年10月20日 17:26
  • 176

VC++信息安全编程(13)Windows2000/xp/vista/7磁盘扇区读写技术

有些时候,我们读取磁盘文件,会被hook.我们读到的可能并非实际的文件。我们直接读取磁盘扇区获取数据。实现磁盘数据的读写,不依赖WindowsAPI。 void CSectorEdit2000Dlg:...
  • yincheng01
  • yincheng01
  • 2011年12月15日 08:04
  • 4414

WINDOWS2000使用操作系统

  • 2011年06月18日 08:50
  • 4.72MB
  • 下载

PlxMon在Windows2000版本的使用手册

  • 2011年01月13日 13:14
  • 1.13MB
  • 下载

命令行下直接修改Windows2000的IP地址

有朋友问我,“能不能在命令行下直接修改Windows2000的IP地址?”。      呵呵,当然是可以的了。不仅可以修改IP地址,和网络相关的每个细节都可以用命令行方式进行配置。      ...
  • woods2001
  • woods2001
  • 2012年01月05日 18:18
  • 1152

Windows2000/XP启动过程详细分析

Windows2000/XP是一个优秀的操作系统,它功能强大,安全稳定,深受广大电脑用户青睐。但在使用过程中,我们明显地感觉到它的启动时间比Windows98要延长许多,比之Windows98更能考验...
  • muchmoneyman
  • muchmoneyman
  • 2014年07月15日 15:40
  • 406

解读Windows2000/XP分层驱动模型

可扩展性是Windows NT/2000/XP设计的目标之一,其分层驱动模型是可扩展性的最好体现。实现分层依赖于IO管理器的两个重要的设计:1、Windows中的任何一个驱动程序都被设计成Client...
  • wzsy
  • wzsy
  • 2012年03月02日 17:55
  • 573
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[原创]在windows2000中使用.NET写日志
举报原因:
原因补充:

(最多只允许输入30个字)