Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / SMDiagnostics / System / ServiceModel / Diagnostics / PiiTraceSource.cs / 1 / PiiTraceSource.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Diagnostics { using System.Configuration; // using System.ServiceModel.Channels; using System.Diagnostics; using System.ServiceModel.Configuration; class PiiTraceSource : TraceSource { string eventSourceName = String.Empty; internal const string LogPii = "logKnownPii"; bool shouldLogPii = false; bool initialized = false; object localSyncObject = new object(); internal PiiTraceSource(string name, string eventSourceName) : base(name) { #pragma warning disable 618 AssertUtility.DebugAssert(!String.IsNullOrEmpty(eventSourceName), "Event log source name must be valid"); #pragma warning restore 618 this.eventSourceName = eventSourceName; } internal PiiTraceSource(string name, string eventSourceName, SourceLevels levels) : base(name, levels) { #pragma warning disable 618 AssertUtility.DebugAssert(!String.IsNullOrEmpty(eventSourceName), "Event log source name must be valid"); #pragma warning restore 618 this.eventSourceName = eventSourceName; } void Initialize() { if (!this.initialized) { lock (localSyncObject) { if (!this.initialized) { string attributeValue = this.Attributes[PiiTraceSource.LogPii]; bool shouldLogPii = false; if (!string.IsNullOrEmpty(attributeValue)) { if (!bool.TryParse(attributeValue, out shouldLogPii)) { shouldLogPii = false; } } if (shouldLogPii) { #pragma warning disable 618 EventLogger logger = new EventLogger(this.eventSourceName, null); #pragma warning restore 618 if (MachineSettingsSection.EnableLoggingKnownPii) { logger.LogEvent(TraceEventType.Information, EventLogCategory.MessageLogging, EventLogEventId.PiiLoggingOn, false); this.shouldLogPii = true; } else { logger.LogEvent(TraceEventType.Error, EventLogCategory.MessageLogging, EventLogEventId.PiiLoggingNotAllowed, false); } } this.initialized = true; } } } } protected override string[] GetSupportedAttributes() { return new string[] { PiiTraceSource.LogPii }; } internal bool ShouldLogPii { get { // ShouldLogPii is called very frequently, don't call Initialize unless we have to. if (!this.initialized) { Initialize(); } return this.shouldLogPii; } set { // If you call this, you know what you're doing this.initialized = true; this.shouldLogPii = value; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Maps.cs
- ContainerVisual.cs
- MaterializeFromAtom.cs
- DSACryptoServiceProvider.cs
- GZipDecoder.cs
- OdbcDataReader.cs
- List.cs
- WaitHandleCannotBeOpenedException.cs
- DataGridViewCellConverter.cs
- BehaviorService.cs
- WSDualHttpBindingElement.cs
- SafeArrayRankMismatchException.cs
- safex509handles.cs
- TypeConverterAttribute.cs
- Parallel.cs
- RegexInterpreter.cs
- PassportPrincipal.cs
- DockingAttribute.cs
- ItemList.cs
- ObjectIDGenerator.cs
- ContextMenuAutomationPeer.cs
- XamlClipboardData.cs
- ClientCultureInfo.cs
- OleDbDataReader.cs
- DbConnectionPoolCounters.cs
- ValidationHelper.cs
- StopRoutingHandler.cs
- DesignerActionUIStateChangeEventArgs.cs
- GenericsInstances.cs
- BinHexDecoder.cs
- PenThread.cs
- CryptoHandle.cs
- ListViewEditEventArgs.cs
- ConsoleCancelEventArgs.cs
- ShapingEngine.cs
- TextProviderWrapper.cs
- DataGridCellsPanel.cs
- Attributes.cs
- CacheForPrimitiveTypes.cs
- PropertyDescriptorComparer.cs
- TypeInfo.cs
- FilterableAttribute.cs
- DbConnectionPoolIdentity.cs
- InputQueue.cs
- JsonByteArrayDataContract.cs
- DataGridViewCellStyleContentChangedEventArgs.cs
- CodeTypeParameter.cs
- TableCellCollection.cs
- NameValueConfigurationCollection.cs
- GridViewEditEventArgs.cs
- ContentDefinition.cs
- DoubleKeyFrameCollection.cs
- DataBinder.cs
- SqlTypeConverter.cs
- TabControlEvent.cs
- NetworkInformationPermission.cs
- ResolveCriteriaApril2005.cs
- PackagingUtilities.cs
- CustomAttributeSerializer.cs
- Delay.cs
- JournalEntryListConverter.cs
- DockingAttribute.cs
- TabPage.cs
- SlipBehavior.cs
- FileDialogPermission.cs
- UniqueTransportManagerRegistration.cs
- WebPartCollection.cs
- ModelVisual3D.cs
- _HelperAsyncResults.cs
- PassportPrincipal.cs
- SByteConverter.cs
- UdpSocket.cs
- MenuRendererStandards.cs
- ColorAnimation.cs
- JoinElimination.cs
- SoapMessage.cs
- SystemDiagnosticsSection.cs
- ValidationErrorEventArgs.cs
- OleDbConnectionInternal.cs
- RectKeyFrameCollection.cs
- MimeWriter.cs
- Avt.cs
- HttpProfileBase.cs
- CuspData.cs
- StylusPointPropertyInfoDefaults.cs
- ClipboardData.cs
- DataControlReference.cs
- ProgramPublisher.cs
- SymbolDocumentInfo.cs
- CacheEntry.cs
- MenuTracker.cs
- RuntimeVariablesExpression.cs
- ObjectKeyFrameCollection.cs
- StateFinalizationActivity.cs
- RegisteredScript.cs
- HashSetDebugView.cs
- UnsafeNativeMethods.cs
- WebPartEditorCancelVerb.cs
- WebPartMinimizeVerb.cs
- StringOutput.cs