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
- TableStyle.cs
- ClientSettings.cs
- AxWrapperGen.cs
- HtmlInputRadioButton.cs
- DeferredBinaryDeserializerExtension.cs
- SqlConnectionStringBuilder.cs
- ParamArrayAttribute.cs
- ClientScriptManagerWrapper.cs
- ConfigurationManagerInternal.cs
- DrawingImage.cs
- UIPropertyMetadata.cs
- TextSelectionProcessor.cs
- RegexInterpreter.cs
- VisualCollection.cs
- BuiltInExpr.cs
- Fx.cs
- DynamicDocumentPaginator.cs
- CachedTypeface.cs
- ListViewGroupItemCollection.cs
- XmlConverter.cs
- VersionedStream.cs
- SQLDouble.cs
- DockingAttribute.cs
- WebPartsPersonalizationAuthorization.cs
- CompositeScriptReferenceEventArgs.cs
- CompareInfo.cs
- UniqueIdentifierService.cs
- DataBindEngine.cs
- querybuilder.cs
- GeometryModel3D.cs
- QueryCursorEventArgs.cs
- MethodRental.cs
- InheritanceContextHelper.cs
- GridViewColumn.cs
- IdentityValidationException.cs
- PassportPrincipal.cs
- RelatedCurrencyManager.cs
- BinaryFormatterSinks.cs
- UICuesEvent.cs
- MenuAdapter.cs
- DataGridViewRow.cs
- SystemKeyConverter.cs
- ListViewPagedDataSource.cs
- DoubleIndependentAnimationStorage.cs
- XMLSyntaxException.cs
- Activator.cs
- TraceContextRecord.cs
- NumericPagerField.cs
- keycontainerpermission.cs
- HtmlWindow.cs
- GenericWebPart.cs
- ToolStripPanelDesigner.cs
- DataGridViewRowsRemovedEventArgs.cs
- HwndSource.cs
- DPCustomTypeDescriptor.cs
- ToolStripItemRenderEventArgs.cs
- Qualifier.cs
- XmlSchemaAnnotation.cs
- OSFeature.cs
- AQNBuilder.cs
- ComponentConverter.cs
- OperationCanceledException.cs
- InfoCardSchemas.cs
- DeleteMemberBinder.cs
- MeasureItemEvent.cs
- FastEncoderWindow.cs
- EventProvider.cs
- NegotiateStream.cs
- XpsStructure.cs
- SqlRetyper.cs
- TreeViewImageGenerator.cs
- StringDictionary.cs
- RepeatButton.cs
- XmlSchemaSimpleTypeRestriction.cs
- ProvidersHelper.cs
- AppLevelCompilationSectionCache.cs
- XmlnsDictionary.cs
- RegexWorker.cs
- GenericIdentity.cs
- PathFigureCollection.cs
- DataGridItemEventArgs.cs
- HyperLinkColumn.cs
- RTLAwareMessageBox.cs
- CounterCreationData.cs
- EllipseGeometry.cs
- Calendar.cs
- RoleService.cs
- WindowsContainer.cs
- SHA384Managed.cs
- XmlSchemaChoice.cs
- QilReference.cs
- PenLineCapValidation.cs
- Assembly.cs
- ObjectReaderCompiler.cs
- TextBlock.cs
- XmlHelper.cs
- AdornerHitTestResult.cs
- DataConnectionHelper.cs
- TypeTypeConverter.cs
- SignedXml.cs