Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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; } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TextDecoration.cs
- BamlResourceContent.cs
- CodeIndexerExpression.cs
- HttpBindingExtension.cs
- SerializationEventsCache.cs
- ByteStreamMessageEncoder.cs
- InfoCardKeyedHashAlgorithm.cs
- VerticalAlignConverter.cs
- XmlSchemaElement.cs
- EnumUnknown.cs
- smtppermission.cs
- DataFormat.cs
- PathFigure.cs
- InvalidateEvent.cs
- Crypto.cs
- GridViewAutomationPeer.cs
- RsaKeyIdentifierClause.cs
- DataRowCollection.cs
- Odbc32.cs
- InheritanceContextHelper.cs
- TextBoxAutomationPeer.cs
- XmlNamedNodeMap.cs
- CopyAction.cs
- DataBinding.cs
- SmtpReplyReaderFactory.cs
- ObjectStorage.cs
- ChooseAction.cs
- SystemTcpConnection.cs
- DataGridViewAdvancedBorderStyle.cs
- Vector3DAnimationBase.cs
- PngBitmapEncoder.cs
- MissingManifestResourceException.cs
- MSG.cs
- PrivilegedConfigurationManager.cs
- nulltextnavigator.cs
- WebPartDescriptionCollection.cs
- DbParameterCollection.cs
- CfgParser.cs
- InvalidStoreProtectionKeyException.cs
- Condition.cs
- Win32PrintDialog.cs
- MimeXmlReflector.cs
- TrustLevelCollection.cs
- XmlDocumentType.cs
- WorkflowCommandExtensionItem.cs
- FileNotFoundException.cs
- ToolStripPanel.cs
- TransactionTraceIdentifier.cs
- CornerRadiusConverter.cs
- ClientSideQueueItem.cs
- MessageBox.cs
- DictionarySurrogate.cs
- TreeViewTemplateSelector.cs
- SoapWriter.cs
- columnmapkeybuilder.cs
- ExtensionDataReader.cs
- EmptyCollection.cs
- SqlDelegatedTransaction.cs
- RecipientServiceModelSecurityTokenRequirement.cs
- Rect3DConverter.cs
- XmlChildNodes.cs
- DataBindingHandlerAttribute.cs
- ParenthesizePropertyNameAttribute.cs
- VectorCollection.cs
- DataAccessException.cs
- ImageListUtils.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- Hashtable.cs
- QilUnary.cs
- CompilerError.cs
- Fault.cs
- StandardToolWindows.cs
- CompilerScope.Storage.cs
- ProfileSettingsCollection.cs
- ConnectionPoint.cs
- ListControl.cs
- Component.cs
- DoubleIndependentAnimationStorage.cs
- UInt32Storage.cs
- RectIndependentAnimationStorage.cs
- ImageMap.cs
- MenuBase.cs
- PersonalizationProvider.cs
- SqlDataSourceQueryConverter.cs
- SqlConnectionPoolProviderInfo.cs
- CacheOutputQuery.cs
- KeyGestureValueSerializer.cs
- DataSourceExpressionCollection.cs
- FlowDocumentPaginator.cs
- BackStopAuthenticationModule.cs
- WebPartConnectionCollection.cs
- InkPresenterAutomationPeer.cs
- MsmqIntegrationChannelFactory.cs
- BuildManager.cs
- UTF8Encoding.cs
- RijndaelManagedTransform.cs
- XmlDictionaryString.cs
- GacUtil.cs
- Label.cs
- TrustLevel.cs