Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / SMDiagnostics / System / ServiceModel / Diagnostics / PiiTraceSource.cs / 1305376 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TypeSystem.cs
- BaseTemplateBuildProvider.cs
- Recipient.cs
- Storyboard.cs
- TableAdapterManagerHelper.cs
- DataBindingHandlerAttribute.cs
- FixedHyperLink.cs
- DesignerInterfaces.cs
- PropertyIDSet.cs
- RealProxy.cs
- VisualTarget.cs
- OraclePermissionAttribute.cs
- entityreference_tresulttype.cs
- TableSectionStyle.cs
- OptimizedTemplateContent.cs
- RegexCode.cs
- ImageSourceConverter.cs
- CdpEqualityComparer.cs
- SQLConvert.cs
- SoundPlayer.cs
- PnrpPermission.cs
- WindowsRichEditRange.cs
- DesignerSerializationVisibilityAttribute.cs
- SmtpFailedRecipientException.cs
- VirtualizedItemPattern.cs
- HttpPostedFile.cs
- StylusPointProperty.cs
- EmptyEnumerable.cs
- CreateUserErrorEventArgs.cs
- TriggerCollection.cs
- MarkupCompilePass1.cs
- DetailsViewModeEventArgs.cs
- EntityDataSourceWrapperCollection.cs
- HatchBrush.cs
- GroupQuery.cs
- SourceFilter.cs
- StateManagedCollection.cs
- WeakHashtable.cs
- PropertyValueUIItem.cs
- TreeNode.cs
- ProtocolsSection.cs
- XmlChildEnumerator.cs
- RSACryptoServiceProvider.cs
- SQLMembershipProvider.cs
- XmlSchemaAll.cs
- ParentQuery.cs
- WebSysDisplayNameAttribute.cs
- AnnotationResource.cs
- login.cs
- ListView.cs
- SwitchAttribute.cs
- BitmapImage.cs
- BindingNavigator.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- OperationDescriptionCollection.cs
- GridViewRowCollection.cs
- AuthorizationContext.cs
- EntryIndex.cs
- ColorIndependentAnimationStorage.cs
- _NegoStream.cs
- HtmlSelectionListAdapter.cs
- CatalogZone.cs
- ByeMessageApril2005.cs
- RouteItem.cs
- MethodMessage.cs
- SafeHandles.cs
- JournalEntryStack.cs
- ElementProxy.cs
- _IPv4Address.cs
- SimplePropertyEntry.cs
- PrintPreviewDialog.cs
- ImageAutomationPeer.cs
- DesignerTransaction.cs
- IFlowDocumentViewer.cs
- SqlUDTStorage.cs
- CodeExporter.cs
- MetafileHeader.cs
- ObjectManager.cs
- XmlArrayAttribute.cs
- SHA512Managed.cs
- ObjectAnimationBase.cs
- XmlStreamNodeWriter.cs
- StatusBarAutomationPeer.cs
- InputBindingCollection.cs
- CommandBinding.cs
- XPathExpr.cs
- OperationSelectorBehavior.cs
- AnnotationStore.cs
- SpellerError.cs
- TypePropertyEditor.cs
- Variable.cs
- Visitors.cs
- Graphics.cs
- SmtpMail.cs
- XmlSchemaAttribute.cs
- EntityCommandCompilationException.cs
- RegexCaptureCollection.cs
- ScopeElement.cs
- PanelDesigner.cs
- AvTrace.cs