Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Services / Monitoring / system / Diagnosticts / EventLogTraceListener.cs / 1 / EventLogTraceListener.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ namespace System.Diagnostics { using System; using System.Security; using System.Security.Permissions; using System.IO; using System.Text; using System.Globalization; using System.Runtime.InteropServices; ////// [HostProtection(SecurityAction.LinkDemand, Synchronization=true)] public sealed class EventLogTraceListener : TraceListener { private EventLog eventLog; private bool nameSet; ///Provides a simple listener for directing tracing or /// debugging output to a ///or to a , such as or /// . /// public EventLogTraceListener() { } ///Initializes a new instance of the ///class without a trace /// listener. /// public EventLogTraceListener(EventLog eventLog) : base((eventLog != null) ? eventLog.Source : string.Empty) { this.eventLog = eventLog; } ///Initializes a new instance of the ///class using the /// specified event log. /// public EventLogTraceListener(string source) { eventLog = new EventLog(); eventLog.Source = source; } ///Initializes a new instance of the ///class using the /// specified source. /// public EventLog EventLog { get { return eventLog; } set { eventLog = value; } } ///Gets or sets the event log to write to. ////// public override string Name { get { if (nameSet == false && eventLog != null) { nameSet = true; base.Name = eventLog.Source; } return base.Name; } set { nameSet = true; base.Name = value; } } ///Gets or sets the /// name of this trace listener. ////// public override void Close() { if (eventLog != null) eventLog.Close(); } ///Closes the text writer so that it no longer receives tracing or /// debugging output. ////// /// protected override void Dispose(bool disposing) { if (disposing) this.Close(); } ////// public override void Write(string message) { if (eventLog != null) eventLog.WriteEntry(message); } ///Writes a message to this instance's event log. ////// public override void WriteLine(string message) { Write(message); } [ ComVisible(false) ] public override void TraceEvent(TraceEventCache eventCache, string source, TraceEventType severity, int id, string format, params object[] args) { if (Filter != null && !Filter.ShouldTrace(eventCache, source, severity, id, format, args)) return; EventInstance data = CreateEventInstance(severity, id); if (args == null) { eventLog.WriteEvent(data, format); } else if(String.IsNullOrEmpty(format)) { string[] strings = new string[args.Length]; for (int i=0; iWrites a message to this instance's event log followed by a line terminator. /// The default line terminator is a carriage return followed by a line feed /// (\r\n). ///ushort.MaxValue) id = ushort.MaxValue; // Ideally we need to pick a value other than '0' as zero is // a commonly used EventId by most applications if (id < ushort.MinValue) id = ushort.MinValue; EventInstance data = new EventInstance(id, 0); if (severity == TraceEventType.Error || severity == TraceEventType.Critical) data.EntryType = EventLogEntryType.Error; else if (severity == TraceEventType.Warning) data.EntryType = EventLogEntryType.Warning; else data.EntryType = EventLogEntryType.Information; return data; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ namespace System.Diagnostics { using System; using System.Security; using System.Security.Permissions; using System.IO; using System.Text; using System.Globalization; using System.Runtime.InteropServices; ////// [HostProtection(SecurityAction.LinkDemand, Synchronization=true)] public sealed class EventLogTraceListener : TraceListener { private EventLog eventLog; private bool nameSet; ///Provides a simple listener for directing tracing or /// debugging output to a ///or to a , such as or /// . /// public EventLogTraceListener() { } ///Initializes a new instance of the ///class without a trace /// listener. /// public EventLogTraceListener(EventLog eventLog) : base((eventLog != null) ? eventLog.Source : string.Empty) { this.eventLog = eventLog; } ///Initializes a new instance of the ///class using the /// specified event log. /// public EventLogTraceListener(string source) { eventLog = new EventLog(); eventLog.Source = source; } ///Initializes a new instance of the ///class using the /// specified source. /// public EventLog EventLog { get { return eventLog; } set { eventLog = value; } } ///Gets or sets the event log to write to. ////// public override string Name { get { if (nameSet == false && eventLog != null) { nameSet = true; base.Name = eventLog.Source; } return base.Name; } set { nameSet = true; base.Name = value; } } ///Gets or sets the /// name of this trace listener. ////// public override void Close() { if (eventLog != null) eventLog.Close(); } ///Closes the text writer so that it no longer receives tracing or /// debugging output. ////// /// protected override void Dispose(bool disposing) { if (disposing) this.Close(); } ////// public override void Write(string message) { if (eventLog != null) eventLog.WriteEntry(message); } ///Writes a message to this instance's event log. ////// public override void WriteLine(string message) { Write(message); } [ ComVisible(false) ] public override void TraceEvent(TraceEventCache eventCache, string source, TraceEventType severity, int id, string format, params object[] args) { if (Filter != null && !Filter.ShouldTrace(eventCache, source, severity, id, format, args)) return; EventInstance data = CreateEventInstance(severity, id); if (args == null) { eventLog.WriteEvent(data, format); } else if(String.IsNullOrEmpty(format)) { string[] strings = new string[args.Length]; for (int i=0; iWrites a message to this instance's event log followed by a line terminator. /// The default line terminator is a carriage return followed by a line feed /// (\r\n). ///ushort.MaxValue) id = ushort.MaxValue; // Ideally we need to pick a value other than '0' as zero is // a commonly used EventId by most applications if (id < ushort.MinValue) id = ushort.MinValue; EventInstance data = new EventInstance(id, 0); if (severity == TraceEventType.Error || severity == TraceEventType.Critical) data.EntryType = EventLogEntryType.Error; else if (severity == TraceEventType.Warning) data.EntryType = EventLogEntryType.Warning; else data.EntryType = EventLogEntryType.Information; return data; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MessagePartSpecification.cs
- TabletDevice.cs
- MonitoringDescriptionAttribute.cs
- DbConnectionPoolIdentity.cs
- Window.cs
- HttpCachePolicyElement.cs
- FileDataSourceCache.cs
- ApplicationSettingsBase.cs
- StyleHelper.cs
- TabControl.cs
- Rectangle.cs
- DesignerRegion.cs
- Parser.cs
- SqlDataSourceFilteringEventArgs.cs
- DataGridViewSelectedColumnCollection.cs
- PageParserFilter.cs
- EntityDataSourceWizardForm.cs
- CommandPlan.cs
- MediaContext.cs
- SimpleExpression.cs
- AllMembershipCondition.cs
- UserInitiatedNavigationPermission.cs
- DeploymentSectionCache.cs
- SrgsSubset.cs
- ManagementQuery.cs
- UInt16.cs
- CommandEventArgs.cs
- ControlCachePolicy.cs
- DataServiceContext.cs
- StorageScalarPropertyMapping.cs
- DataGridCellEditEndingEventArgs.cs
- DataSourceCacheDurationConverter.cs
- DiscoveryEndpointValidator.cs
- IPHostEntry.cs
- InvalidCastException.cs
- ContextQuery.cs
- BitStream.cs
- MediaElementAutomationPeer.cs
- NamespaceMapping.cs
- BoolLiteral.cs
- TileModeValidation.cs
- PersonalizationStateInfoCollection.cs
- HybridDictionary.cs
- FileUpload.cs
- EdmValidator.cs
- FrameworkElementFactory.cs
- __Filters.cs
- XmlDataLoader.cs
- SqlCachedBuffer.cs
- TemplateBindingExpression.cs
- SafeViewOfFileHandle.cs
- entityreference_tresulttype.cs
- RuleSettings.cs
- ProcessInfo.cs
- ChangePassword.cs
- DictionaryBase.cs
- Environment.cs
- CompiledRegexRunner.cs
- OdbcDataReader.cs
- UnsafeNativeMethods.cs
- HostedTransportConfigurationBase.cs
- ConfigXmlElement.cs
- SyndicationSerializer.cs
- CodeCompiler.cs
- Type.cs
- DemultiplexingClientMessageFormatter.cs
- XMLSyntaxException.cs
- ManagementNamedValueCollection.cs
- XmlValidatingReaderImpl.cs
- WindowsTokenRoleProvider.cs
- StringOutput.cs
- KeyEvent.cs
- Image.cs
- GB18030Encoding.cs
- SortQuery.cs
- MsmqDecodeHelper.cs
- QilGeneratorEnv.cs
- CustomAttributeFormatException.cs
- ColumnCollection.cs
- VisualBasicExpressionConverter.cs
- HtmlGenericControl.cs
- ArglessEventHandlerProxy.cs
- SqlDependency.cs
- PageCatalogPartDesigner.cs
- DBSchemaRow.cs
- SchemaType.cs
- HttpFormatExtensions.cs
- ImageIndexConverter.cs
- DateTimeUtil.cs
- WebServiceHost.cs
- RegexRunner.cs
- FamilyMap.cs
- WebProxyScriptElement.cs
- As.cs
- ZipIOFileItemStream.cs
- ThreadInterruptedException.cs
- DefaultBinder.cs
- BitmapEffectGroup.cs
- ArgumentException.cs
- ToolStripDesignerAvailabilityAttribute.cs