Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Services / Monitoring / system / Diagnosticts / EventLogTraceListener.cs / 1305376 / 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) { try { if (disposing) { this.Close(); } else { // clean up resources if (eventLog != null) eventLog.Close(); eventLog = null; } } finally { base.Dispose(disposing); } } ////// 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) { try { if (disposing) { this.Close(); } else { // clean up resources if (eventLog != null) eventLog.Close(); eventLog = null; } } finally { base.Dispose(disposing); } } ////// 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
- AutomationIdentifier.cs
- EntityDataSourceChangedEventArgs.cs
- UiaCoreTypesApi.cs
- ExpressionLexer.cs
- XmlElementElementCollection.cs
- Track.cs
- DataObjectEventArgs.cs
- OptionUsage.cs
- ExternalCalls.cs
- PropertyConverter.cs
- ConnectionPointCookie.cs
- WorkerRequest.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- TextUtf8RawTextWriter.cs
- DataGrid.cs
- DialogWindow.cs
- XmlReaderSettings.cs
- SmiEventSink_DeferedProcessing.cs
- ActivityBuilderHelper.cs
- ReadWriteObjectLock.cs
- TextBoxAutoCompleteSourceConverter.cs
- HideDisabledControlAdapter.cs
- WebPartAuthorizationEventArgs.cs
- COM2PropertyPageUITypeConverter.cs
- ArrayElementGridEntry.cs
- XomlCompilerResults.cs
- ConnectivityStatus.cs
- PointCollection.cs
- BitmapEffect.cs
- ItemsControlAutomationPeer.cs
- IPAddress.cs
- TabPanel.cs
- SafeHandles.cs
- RelativeSource.cs
- FlowDocumentReaderAutomationPeer.cs
- SequenceNumber.cs
- PaintValueEventArgs.cs
- ExportOptions.cs
- NativeRightsManagementAPIsStructures.cs
- DataError.cs
- AppDomainFactory.cs
- While.cs
- TypeUsageBuilder.cs
- FileRegion.cs
- PreviewPageInfo.cs
- SemaphoreSecurity.cs
- UnsafeNativeMethods.cs
- PrinterUnitConvert.cs
- StatusCommandUI.cs
- ContextMenu.cs
- AuthenticationException.cs
- AddInContractAttribute.cs
- ControlBuilder.cs
- ViewBase.cs
- PenContext.cs
- DataStreamFromComStream.cs
- AxisAngleRotation3D.cs
- AlternateView.cs
- RouteCollection.cs
- GroupBox.cs
- MarkupProperty.cs
- ObfuscateAssemblyAttribute.cs
- SHA1.cs
- DynamicFilter.cs
- DefaultObjectMappingItemCollection.cs
- RawTextInputReport.cs
- TemplatePagerField.cs
- DbParameterHelper.cs
- Label.cs
- LinearKeyFrames.cs
- processwaithandle.cs
- mansign.cs
- ChannelSinkStacks.cs
- NullableDecimalMinMaxAggregationOperator.cs
- ChannelReliableSession.cs
- CounterSet.cs
- UseLicense.cs
- CodeTryCatchFinallyStatement.cs
- DataContractSerializerServiceBehavior.cs
- ArglessEventHandlerProxy.cs
- OpenTypeCommon.cs
- WindowsTokenRoleProvider.cs
- TreeNode.cs
- Sequence.cs
- TypeUnloadedException.cs
- SecurityPolicySection.cs
- SetterBase.cs
- DeclaredTypeValidatorAttribute.cs
- ThumbButtonInfoCollection.cs
- MetadataArtifactLoaderResource.cs
- AQNBuilder.cs
- BitmapMetadataBlob.cs
- ZipFileInfo.cs
- FrameworkRichTextComposition.cs
- SimpleHandlerBuildProvider.cs
- TiffBitmapEncoder.cs
- ChannelManager.cs
- SubpageParaClient.cs
- pingexception.cs
- OleDbCommandBuilder.cs