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
- SaveFileDialog.cs
- SerializationInfo.cs
- SendSecurityHeader.cs
- AttributeCollection.cs
- OrderedDictionary.cs
- TraceHandlerErrorFormatter.cs
- PointAnimationBase.cs
- LinkUtilities.cs
- WebDisplayNameAttribute.cs
- ParagraphResult.cs
- nulltextcontainer.cs
- GridViewDeletedEventArgs.cs
- TextParentUndoUnit.cs
- ManagementEventArgs.cs
- DataSourceHelper.cs
- HtmlInputImage.cs
- GC.cs
- HelloMessageCD1.cs
- ErrorProvider.cs
- PartManifestEntry.cs
- _NestedMultipleAsyncResult.cs
- Drawing.cs
- MatrixTransform.cs
- ScriptingProfileServiceSection.cs
- EditorZoneBase.cs
- IteratorFilter.cs
- DelegateBodyWriter.cs
- Visual.cs
- ActivityInterfaces.cs
- AudioDeviceOut.cs
- AncestorChangedEventArgs.cs
- SqlVersion.cs
- ActivityMarkupSerializer.cs
- _ShellExpression.cs
- Certificate.cs
- SelectedDatesCollection.cs
- TableLayoutStyleCollection.cs
- ModulesEntry.cs
- XmlNode.cs
- TextEditorMouse.cs
- EncoderReplacementFallback.cs
- SafeHandle.cs
- InvalidWMPVersionException.cs
- IEnumerable.cs
- AutoGeneratedFieldProperties.cs
- DataGridViewCellPaintingEventArgs.cs
- tibetanshape.cs
- Soap.cs
- HttpAsyncResult.cs
- XmlSchemaSequence.cs
- State.cs
- ResourcePool.cs
- TypeUtils.cs
- XamlStackWriter.cs
- FormViewPageEventArgs.cs
- PublisherMembershipCondition.cs
- DrawingState.cs
- PropertyInformation.cs
- SchemaImporterExtensionsSection.cs
- EmptyStringExpandableObjectConverter.cs
- SequenceFullException.cs
- MDIClient.cs
- RtfControlWordInfo.cs
- DesignerAttribute.cs
- CodeStatementCollection.cs
- WindowsClaimSet.cs
- IProvider.cs
- ApplicationCommands.cs
- CommandSet.cs
- TreeBuilder.cs
- ResourceManager.cs
- CatalogPartCollection.cs
- StringInfo.cs
- EventsTab.cs
- InvalidPrinterException.cs
- securitycriticaldataClass.cs
- SimpleApplicationHost.cs
- RayMeshGeometry3DHitTestResult.cs
- SqlDataSourceView.cs
- Root.cs
- DeclarativeCatalogPartDesigner.cs
- CodeIterationStatement.cs
- _Events.cs
- SafeFileMappingHandle.cs
- Timer.cs
- ListViewTableCell.cs
- Scene3D.cs
- LocalServiceSecuritySettings.cs
- DateTimePicker.cs
- UnsignedPublishLicense.cs
- TextReader.cs
- ZipPackage.cs
- AudioLevelUpdatedEventArgs.cs
- CryptoApi.cs
- CodeFieldReferenceExpression.cs
- CleanUpVirtualizedItemEventArgs.cs
- SystemIPGlobalStatistics.cs
- HasRunnableWorkflowEvent.cs
- Keywords.cs
- HttpConfigurationContext.cs