<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>Windows event log helper based on IssueVision Smart Client sample</Title>
      <Shortcut>WindowseventloghelperbasedonIssueVisionSmartClientsample</Shortcut>
      <Description>Windows event log helper based on IssueVision Smart Client sample [C#]</Description>
      <Author>J.Marc Piulachs</Author>
      <HelpUrl>/PreviewSnippet.aspx?SnippetID=d5c3d264-3514-4c2b-ab7b-0afea4905d7d</HelpUrl>
      <SnippetTypes>
        <SnippetType>SurroundsWith</SnippetType>
      </SnippetTypes>
    </Header>
    <Snippet>
      <Code Language="csharp"><![CDATA[using System;
using System.Diagnostics;

namespace IssueVision
{
	// Windows event log helper.
	public class EventLogHelper
	{
		private const string m_eventLogSource = "IssueVision Smart Client 1.0";

		private EventLogHelper()
		{
		}

		// Checks for the existing of an event source. Returns true if the event 
		// source exists; otherwise false is returned.
		public static bool Exists(string eventSourceName)
		{
			return EventLog.Exists(eventSourceName);
		}

		// Creates an event source name for the windows application event log.
		public static void CreateSource(string eventSourceName)
		{
			if (!EventLog.Exists(eventSourceName))
			{
				EventLog.CreateEventSource(eventSourceName, "Application");
			}
		}

		// Removes an event source name from the windows application event log.
		public static void RemoveSource(string eventSourceName)
		{
			if (EventLog.Exists(eventSourceName))
			{
				EventLog.DeleteEventSource(eventSourceName, "Application");
			}
		}

		// Logs an error to the application log.
		public static void LogError(string message)
		{
			LogEvent(m_eventLogSource, message, EventLogEntryType.Error);
		}

		// Logs a failure audit message to the application event log.
		public static void LogFailureAudit(string message)
		{
			LogEvent(m_eventLogSource, message, EventLogEntryType.FailureAudit);
		}

		// Logs a sucess audit message to the application event log.
		public static void LogSuccessAudit(string message)
		{
			LogEvent(m_eventLogSource, message, EventLogEntryType.SuccessAudit);
		}

		// Logs a warning message to the application event log.
		public static void LogWarning(string message)
		{
			LogEvent(m_eventLogSource, message, EventLogEntryType.Warning);
		}

		// Logs an information message to the application event log.
		public static void LogInformation(string message)
		{
			LogEvent(m_eventLogSource, message, EventLogEntryType.Information);
		}

		// Log an message to the Windows Application Event Log with a specified type.
		private static void LogEvent(string eventLogSource, string message, EventLogEntryType eventLogEntryType)
		{
			EventLog.WriteEntry(eventLogSource, message, eventLogEntryType);
		}
	}
}]]></Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>