精华内容
下载资源
问答
  • C# EventLog

    2010-01-30 11:33:00
    EventLog evtLog = new EventLog(logName);   if (!EventLog.SourceExists(logSource)) { EventLog.CreateEventSource(logSource, logName); Console.WriteLine("Event log ...

    string logSource = "TestSource";

    string logName = "TestLog";

     

    EventLog evtLog = new EventLog(logName);

     

    if (!EventLog.SourceExists(logSource))

    {

    EventLog.CreateEventSource(logSource, logName);

    Console.WriteLine("Event log created");

    }

     

    evtLog.Source = logSource;

    evtLog.WriteEntry("aaa");

    =============================

    EventLog.WriteEntry("aa", "aaa");

     

     

    展开全文
  • C# EventLog类应用

    2012-09-26 10:58:12
    ///EventLogClass 的摘要说明 /// public class EventLogClass { public EventLogClass() { // //TODO: 在此处添加构造函数逻辑 // } /// /// 创建日志 /// /// 源名称 /// 日志名
    /// <summary>
    ///EventLogClass 的摘要说明
    /// </summary>
    public class EventLogClass
    {
    	public EventLogClass()
    	{
    		//
    		//TODO: 在此处添加构造函数逻辑
    		//
    	}
    
        /// <summary>
            /// 创建日志
            /// </summary>
            /// <param name="sourcename">源名称</param>
            /// <param name="logname">日志名</param>
            /// <returns>是否成功</returns>
            public static bool CreateEvent(string sourcename, string logname)
            {
                try
                {
                    if (DeleteSourceEvent(sourcename))
                    {
                        // Logs and Sources are created as a pair.
                        System.Diagnostics.EventLog.CreateEventSource(sourcename, logname);
                        System.Diagnostics.EventLog eventLog1 = setEvent(sourcename, logname);
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
                catch (Exception)
                {
                    return false;
                    throw;
                }
            }
    
            /// <summary>
            /// 日志源是否存在
            /// </summary>
            /// <param name="sourcename">源名称</param>
            /// <returns>是否存在</returns>
            public static bool ExistsSourceEvent(string sourcename)
            {
                if (System.Diagnostics.EventLog.SourceExists(sourcename))
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
    
            /// <summary>
            /// 删除日志源
            /// </summary>
            /// <param name="sourcename">源名称</param>
            /// <returns>是否成功</returns>
            public static bool DeleteSourceEvent(string sourcename)
            {
                try
                {
                    if (System.Diagnostics.EventLog.SourceExists(sourcename))
                    {
                        System.Diagnostics.EventLog.DeleteEventSource(sourcename);
                    }
                    return true;
                }
                catch (Exception)
                {
                    return false;
                    throw;
                }
            }
    
            /// <summary>
            /// 写入日志
            /// </summary>
            /// <param name="sourcename">源名称</param>
            /// <param name="logname">日志名</param>
            /// <param name="logmes">日志信息</param>
            /// <param name="logtype">日志类型:1-错误事件,2-失败审核事件,3-信息事件,4-成功审核事件,5-警告事件</param>
            /// <param name="eventID">事件ID</param>
            /// <param name="category">类别</param>
            /// <returns>是否成功</returns>
            public static bool WriteEvent(string sourcename, string logname, string logmes, int logtype, int eventID, short category)
            {
                if (!ExistsSourceEvent(sourcename))
                {
                    CreateEvent(sourcename, logname);
                }
                System.Diagnostics.EventLog eventLog1 = setEvent(sourcename, logname);
                if (System.Diagnostics.EventLog.Exists(logname))
                {
                    try
                    {
                        switch (logtype)
                        {
                            case 1:
                                eventLog1.WriteEntry(logmes, System.Diagnostics.EventLogEntryType.Error, eventID, category);//错误事件
                                break;
                            case 2:
                                eventLog1.WriteEntry(logmes, System.Diagnostics.EventLogEntryType.FailureAudit,eventID, category);//失败审核事件
                                break;
                            case 3:
                                eventLog1.WriteEntry(logmes, System.Diagnostics.EventLogEntryType.Information, eventID, category);//信息事件
                                break;
                            case 4:
     eventLog1.WriteEntry(logmes, System.Diagnostics.EventLogEntryType.SuccessAudit, eventID, category);//成功审核事件
                                break;
                            case 5:
                                eventLog1.WriteEntry(logmes, System.Diagnostics.EventLogEntryType.Warning, eventID, category);//警告事件
                                break;
                            default:
                                eventLog1.WriteEntry(logmes);
                                break;
                        }
                        return true;
                    }
                    catch (Exception)
                    {
                        return false;
                        throw;
                    }
                }
                else
                {
                    return false;
                }
            }
    
            /// <summary>
            /// 创建事件实例
            /// </summary>
            /// <param name="sourcename">源名称</param>
            /// <param name="logname">日志名</param>
            /// <returns>返回事件实例</returns>
            public static System.Diagnostics.EventLog setEvent(string sourcename, string logname)
            {
                System.Diagnostics.EventLog eventLog1 = new System.Diagnostics.EventLog();
                eventLog1.Log = logname;
                eventLog1.Source = sourcename;
                eventLog1.MachineName = ".";
                return eventLog1;
            }
            /*
            /// <summary>
            /// 读取日志
            /// </summary>
            /// <param name="sourcename">源名称</param>
            /// <param name="logname">日志名</param>
            /// <returns>是否成功</returns>
            private static bool MessageEvent(string sourcename, string logname)
            {
                System.Diagnostics.EventLog eventLog1 = setEvent(sourcename, logname); 
                if (eventLog1.Entries.Count > 0)
                {
                    try
                    {
                        foreach (System.Diagnostics.EventLogEntry entry
                                        in eventLog1.Entries)
                        {
                            MessageBox.Show(entry.Message);
                        }
                        return true;
                    }
                    catch (Exception)
                    {
                        return false;
                        throw;
                    }
                }
                else
                {
                    return false;
                }
            }*/
    
            /// <summary>
            /// 删除日志
            /// </summary>
            /// <param name="sourcename">源名称</param>
            /// <param name="logname">日志名</param>
            /// <returns>是否成功</returns>
            public static bool ClearEvent(string sourcename, string logname)
            {
                System.Diagnostics.EventLog eventLog1 = setEvent(sourcename, logname);
                if (System.Diagnostics.EventLog.Exists(logname))
                {
                    try
                    {
                        eventLog1.Clear();
                        return true;
                    }
                    catch (Exception)
                    {
                        return false;
                        throw;
                    }
                }
                else
                {
                    return false;
                }
            }
    
    }


     

    简单方法

     

    using System;
     using System.Collections.Generic;
     using System.Text;
     using System.Diagnostics;
     
    namespace Log
     {
         class LogWirter
         {
             /// <summary>
             /// 事件源名称
            /// </summary>
             private string eventSourceName;
             EventLogEntryType eventLogType;
             public LogWirter()
             {
                 eventSourceName = "test";
                 eventLogType = EventLogEntryType.Error;
             }
     
            /// <summary>
             /// 消息事件源名称
            /// </summary>
             public string EventSourceName
             {
                 set { eventSourceName = value; }
             }
     
            /// <summary>
             /// 消息事件类型
            /// </summary>
             public EventLogEntryType EventLogType
             {
                 set { eventLogType = value; }
             }
     
            /// <summary>
             /// 写入系统日志
            /// </summary>
             /// <param name="message">事件内容</param>
             public void LogEvent(string message)
             {
                 if (!EventLog.SourceExists(eventSourceName))
                 {
                     EventLog.CreateEventSource(eventSourceName, "Application");
                 }
                 EventLog.WriteEntry(eventSourceName, message, EventLogEntryType.Error);
             }
         }
     }


     

     

     

     

    展开全文
  • C# EventLog

    2009-03-03 18:15:00
    EventLog 类提供了C#与Windows事件日志交互的功能。 很多时候我们可以把日志写到windows事件日志中. 说明:EventLog 使您可以访问或自定义 Windows 事件日志。通过C#提供的EventLog类,可以读取现有日志,向日志中...

    EventLog 类提供了C#与Windows事件日志交互的功能。  很多时候我们可以把日志写到windows事件日志中.

    说明:EventLog 使您可以访问或自定义 Windows 事件日志。通过C#提供的EventLog类,可以读取现有日志,向日志中写入项,创建或删除事件源,删除日志,以及响应日志项。也可在创建事件源时创建新日志。

    打开Windows事件日志的方法

    右击我的电脑->管理->事件日志就可以了.

    shijian

    CreateEventSource
    已重载。 建立一个能够将事件信息写入到系统的特定日志中的应用程序。


    Delete
    已重载。 移除日志资源。


    DeleteEventSource
    已重载。 从事件日志中移除应用程序的事件源注册。

    SourceExist
    已重载。 在计算机的注册表中搜索给定的事件源。


    WriteEntry
    已重载。 将项写入事件日志。


    WriteEvent
    已重载。 向事件日志写入本地化事件项。

    为了能够使用EventLog,我们需要引入using System.Diagnostics命令空间.下面两个方法在你捕获到异常或其他时可以调用.

    private void WriteError(string sText)
    {
         if (!EventLog.SourceExists(sEventSource))
                  EventLog.CreateEventSource(sEventSource, sEventLog);
              EventLog.WriteEntry(sEventSource, sText, EventLogEntryType.Error);

    }

    private void WriteInfo(string sText)
    {
           if (!EventLog.SourceExists(sEventSource))
                EventLog.CreateEventSource(sEventSource, sEventLog);
            EventLog.WriteEntry(sEventSource, sText, EventLogEntryType.Information);      
    }

     

    下面是一个简单使用的例子.

    try

    {

    if(1/0);

    }

    catch(Excepetion ex)

    {

    WriteError(ex.message);

    }

    这样我们就可以成功的写入到Windows事件中..:)

    转载于:https://www.cnblogs.com/liujiang/archive/2009/03/03/1402467.html

    展开全文
  • 摘要:C#源码,系统相关,错误日志,EventLog组件 C#使用EventLog组件保存系统日志,本程序可以显示系统错误日志信息、查找保存系统错误日志信息。
  • 摘要:C#源码,控件类库,EventLog,事件日志 C#使用EventLog组件读写事件日志的实例源码,C#读取事件日志的内容,一个较简单的实例,源码参考价值高,特别是对初学者来说。
  • C# 如何调用EventLog

    2018-04-16 16:34:00
    工作原理: 1.在没有指定logname,仅仅指定了source的时候。 1.1 source存在 在写eventlog的时候,首先去找source,如果找到的话,就往这个... EventLog eventLog = new EventLog(); eventLog.Source = $...

    工作原理:

         1.在没有指定logname,仅仅指定了source的时候。

          1.1 source存在

           在写eventlog的时候,首先去找source,如果找到的话,就往这个source所在的log里面写日志。

       EventLog eventLog = new EventLog();
                eventLog.Source = $@"LisaEventLog 2018-04-17 18:37:16.907 +08:00";
                var message =
                    $"{AppDomain.CurrentDomain.BaseDirectory}{Environment.NewLine}{AppDomain.CurrentDomain.FriendlyName} {DateTimeOffset.Now}";
                eventLog.WriteEntry(message, EventLogEntryType.Error);
                Console.WriteLine($@"{eventLog.Log},{eventLog.Source}");

     

          1.2 source 不存在 (直接绑定Application作为logname,然后自动创建一个source)

         https://github.com/dotnet/corefx/

     

        dotnet\corefx\src\System.Diagnostics.EventLog\src\System\Diagnostics\EventLogInternal.cs

        private void VerifyAndCreateSource(string sourceName, string currentMachineName)

         如果log没有指定,默认会使用Application

    if (GetLogName(currentMachineName) == null)
    this.logName = "Application";

    然后自动创建一个event source

      EventLog.CreateEventSource(new EventSourceCreationData(sourceName, GetLogName(currentMachineName), currentMachineName));

      EventLog eventLog = new EventLog();
                eventLog.Source = $@"{nameof(LisaEventLog)} {DateTimeOffset.Now:yyyy-MM-dd HH:mm:ss.fff zzz}";
                var message =
                    $"{AppDomain.CurrentDomain.BaseDirectory}{Environment.NewLine}{AppDomain.CurrentDomain.FriendlyName} {DateTimeOffset.Now}";
                eventLog.WriteEntry(message, EventLogEntryType.Error);
                Console.WriteLine($@"{eventLog.Log},{eventLog.Source}");

     

     

          2.指定logname和source

          2.1 source不存在

                2.1.1 logname也不存在

                        那么会自动创建log和source,然后写log

                2.1.2 logname存在

                       那么会在log下自动创建source,然后写log

          2.2 source存在

                那么这个source肯定有对应的log了,要么不指定log,让系统自动去匹配。上面的1.1

                如果要指定log的话,那么必须指定为正确的,否则会抛出异常

         3. source没有指定

       这个是不允许的

    System.ArgumentException : Source property was not set before writing to the event log.
    at System.Diagnostics.EventLogInternal.WriteEntry(String message, EventLogEntryType type, Int32 eventID, Int16 category, Byte[] rawData)
    at System.Diagnostics.EventLog.WriteEntry(String message, EventLogEntryType type)

     

     

     

     

     public class LisaEventLog
        {
            private readonly string _logName = @"Lisa";
    
            public string LogName => _logName;
    
            public LisaEventLog()
            {
            }
    
            public LisaEventLog(string logName)
            {
                _logName = logName;
            }
    
            public void WriteEntry(string error, EventLogEntryType type)
            {
                var sourceName = AppDomain.CurrentDomain.FriendlyName;
                if (!EventLog.SourceExists(sourceName))
                {
                    EventLog.CreateEventSource(sourceName, _logName);
                }
                using (EventLog eventLog = new EventLog(_logName))
                {
                    eventLog.Source = sourceName;
                    var message = $"{AppDomain.CurrentDomain.BaseDirectory}{Environment.NewLine}{error}";
                    eventLog.WriteEntry(message, type);
                }
            }
        }

     

    左侧栏里面的叫做LogName,每一条event log中的source列,对应的是source

     

    EventLog.Entries

     这里的entries是指event log,比如上图中对应有5个。

     

     

    System.ArgumentException : Only the first eight characters of a custom log name are significant, and there is already another log on the system using the first eight characters of the name given. Name given: 'Application1', name of existing log: 'Application'.
    at System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData)
    at System.Diagnostics.EventLogInternal.VerifyAndCreateSource(String sourceName, String currentMachineName)
    at System.Diagnostics.EventLogInternal.WriteEntry(String message, EventLogEntryType type, Int32 eventID, Int16 category, Byte[] rawData)
    at System.Diagnostics.EventLog.WriteEntry(String message, EventLogEntryType type)

     

     

    System.ArgumentException : The source 'klnagent2' is not registered in log 'Application'. (It is registered in log 'Appplicat'.) " The Source and Log properties must be matched, or you may set Log to the empty string, and it will automatically be matched to the Source property.
    at System.Diagnostics.EventLogInternal.VerifyAndCreateSource(String sourceName, String currentMachineName)
    at System.Diagnostics.EventLogInternal.WriteEntry(String message, EventLogEntryType type, Int32 eventID, Int16 category, Byte[] rawData)
    at System.Diagnostics.EventLog.WriteEntry(String message, EventLogEntryType type)
    at ExcelTest.Test.TestEventLog() in D:\ChuckLu\Git\Edenred\LISA_5.0.0.0\ExcelTest\Test.cs:line 692

    转载于:https://www.cnblogs.com/chucklu/p/8856645.html

    展开全文
  • 摘要:C#源码,系统相关,EventLog组件 与大家分享一个C#日志控制的小实例,C#使用EventLog组件向本机现有日志中添加条目,可自动得到本机已经存在的日志名称,用户可以选择日志,然后按一定格式在日志内容输入在下边...
  • EventLog in C#

    2018-03-22 15:17:00
    The EventLog class allows you to access or customize Windows NT, 2000, and XP event logs, which record information about important software or hardware events. Using the EventLog class, you can read f...
  • 本文实例讲述了C#3.0使用EventLog类写Windows事件日志的方法。分享给大家供大家参考。具体如下: 在程序中经常需要将指定的信息(包括异常信息和正常处理信息)写到日志中。在C#3.0中可以使用EventLog类将各种信 息...
  • C# 使用eventLog创建windows日志实例

    千次阅读 2012-09-22 22:55:11
    string source = "mySource";  string logName = "myTestLog";  string logMessage = "warning infomation";  EventLog el = new EventLog(logName);  if (!Ev
  • <p><img alt="" height="235" src="https://img-ask.csdnimg.cn/upload/1623116095731.png" width="1162" /></p>
  • C# 写入logevent viewer

    2020-12-29 08:17:29
    string source = "DemoSourceWithinApplicationLog";//写exe名称即可,容易识别 string log = "Application";...EventLog.SourceExists(source)) { EventLog.CreateEventSource(source, log);//没找到先注册 }
  • WYTC-C#-EventLog元件

    2008-07-22 14:25:00
    EventLog元件常用屬性:Entires 取得EventLog的內容Log 設定或寫入的EventLog名稱Scource 設定或取得寫入到EventLog時登錄和使用的來源(source)名稱常用方法:Clear()Close()Delete()Exists(s) 判斷名為s的記錄檔...
  • C#EventLog的使用

    千次阅读 2007-12-04 14:04:00
    命名空间System.Diagnostics.EventLogEventLog(string logName,string machineName,string source);如果source 注册的信息不在logName日志中也不在其他日志中(如图1),则会自动在logName指定的日志中注册;如果...
  • 我们先了解下系统日志的一些...使用EventLog类很容易就能新增一条事件:复制内容到剪贴板程序代码 程序代码EventLog.WriteEntry("abc", "Hello World!", EventLogEntryType.Warning);//默认事件在应用程序下下边创建...
  • C# :试玩EventLog

    2012-06-26 14:23:00
    创建了Source,log显示在 Event viewer/Applications and Services logs/ 自定义Source 中,待遇比较高,专门显示的。 创建Source需要管理员身份,否则Crash。 如果已经打开了 Computer Management,请关闭然后再...
  • C#eventlog类的使用

    2017-05-30 20:11:41
    参考链接:http://www.cnblogs.com/nokiaguy/archive/2009/02/26/1398708.html 转载于:https://blog.51cto.com/acadia627/1930741
  • 完整代码、c#写入事件查看器DEMO,visual studio 2010,eventLog控件
  • 1. What's Windows event logs.   A: MSDN event logs http://support.microsoft.com/kb/308427 ...Application log The application log contains events logged by programs. For example, a database program
  • C#中使用EventLog类写Windows事件日志

    千次阅读 2013-07-24 18:43:00
    C#3.0开始可以使用EventLog类(在System.Diagnostics命名空间中)将各种信息写入Windows日志。在 管理工具->事件查看器 中可以查看写入的Windows日志。  下面是使用EventLog类向应用程序(Application)写入...
  • C#学习:使用EventLog

    千次阅读 2006-12-30 11:15:00
    找来找去,最后发现了这个EventLog,也就是本地的事件日志 ,一般本地运行的程序都可以在里面找到状态变更信息。private void button1_Click(object sender, System.EventArgs e) { bool flag=false; //判别是否...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 608
精华内容 243
热门标签
关键字:

c#eventlog

c# 订阅