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
- WebPermission.cs
- SmtpAuthenticationManager.cs
- HyperLinkStyle.cs
- MembershipPasswordException.cs
- PtsPage.cs
- ComboBox.cs
- ConnectivityStatus.cs
- OpenTypeLayout.cs
- LocalValueEnumerator.cs
- TCPListener.cs
- ProxyWebPartManager.cs
- ProxyWebPartManager.cs
- WorkflowRuntimeBehavior.cs
- DataGridViewAdvancedBorderStyle.cs
- EntityContainerRelationshipSetEnd.cs
- ValueTypeFixupInfo.cs
- Int16Animation.cs
- OleDbStruct.cs
- BrowserDefinitionCollection.cs
- FloatAverageAggregationOperator.cs
- XhtmlConformanceSection.cs
- PointCollection.cs
- ComplexPropertyEntry.cs
- SQLByteStorage.cs
- Rotation3DAnimationUsingKeyFrames.cs
- Binding.cs
- UniformGrid.cs
- TextRangeEditTables.cs
- TreeNodeStyle.cs
- RequestQueryProcessor.cs
- MetabaseReader.cs
- TextFormatterContext.cs
- BindingMAnagerBase.cs
- HtmlInputText.cs
- EntityDataSourceContainerNameItem.cs
- DateTimeOffsetStorage.cs
- MessageFault.cs
- KeyValuePair.cs
- WorkflowCompensationBehavior.cs
- SafeUserTokenHandle.cs
- MailWriter.cs
- DropSource.cs
- _ScatterGatherBuffers.cs
- AccessText.cs
- ProfileInfo.cs
- DataGridViewButtonCell.cs
- PartialCachingControl.cs
- OpenFileDialog.cs
- Int64.cs
- DescendantBaseQuery.cs
- Stack.cs
- XmlSiteMapProvider.cs
- CodeEventReferenceExpression.cs
- ScrollChrome.cs
- PointLightBase.cs
- ProfileProvider.cs
- SafeProcessHandle.cs
- CodeTypeDeclaration.cs
- __TransparentProxy.cs
- SymLanguageVendor.cs
- WindowsToolbar.cs
- InternalBufferOverflowException.cs
- DataGridView.cs
- TypeDescriptionProvider.cs
- ContentPresenter.cs
- HotCommands.cs
- designeractionlistschangedeventargs.cs
- RepeatInfo.cs
- HtmlEmptyTagControlBuilder.cs
- ObjectViewQueryResultData.cs
- XamlPointCollectionSerializer.cs
- AnnotationResource.cs
- EntitySqlException.cs
- CallbackValidator.cs
- FlowLayoutPanelDesigner.cs
- SafeNativeMethodsOther.cs
- WCFBuildProvider.cs
- AdvancedBindingPropertyDescriptor.cs
- StrokeCollection2.cs
- Hyperlink.cs
- ButtonBase.cs
- OrCondition.cs
- GeometryDrawing.cs
- ScriptDescriptor.cs
- SHA512Managed.cs
- MemberDescriptor.cs
- CodeConditionStatement.cs
- PersonalizationEntry.cs
- ToolStripItemGlyph.cs
- PopupControlService.cs
- BindingsCollection.cs
- ChannelServices.cs
- DetailsViewUpdatedEventArgs.cs
- GridViewCommandEventArgs.cs
- DbgCompiler.cs
- CodeExpressionStatement.cs
- DataListItemEventArgs.cs
- GeneralTransform3DGroup.cs
- AudioException.cs
- ProcessHostConfigUtils.cs